0520rpmtarball.htm
来自「鸟哥LINUX 学习课本」· HTM 代码 · 共 956 行 · 第 1/5 页
HTM
956 行
tarball 啰!因此,当您看到一个 tarball 的档案,不要怀疑,里头通常是包含了原始码的!<br> <br>刚刚说 tarball 可以适应在各个不同的平台上面,那么他是怎么办到的呢?因为各个平台的操作环境都不相同吶!嗯!为了要让使用者便于安装,所以通常软件开发者会写一支小scripts 来侦测使用者的系统,以及侦测该软件所需要的前驱软件是否存在你的Linux 环境中,以便利于后续的编译过程与安装步骤!利用这样的一个 script 几乎就可以完整的建立起基本的参数设定档了。基本上,如果前驱软件都已经安装完毕,那么使用tarball 几乎『一定可以安装成功』的,而且安装上面也不麻烦,大多只要执行三~四个步骤即可安装完毕!而且,使用者『可以自行设定安装的路径』,以便于管理。<br> <br>不过, tarball 在另一方面有个相当严重的困扰,那就是反安装的部分。在RPM 上面的反安装是蛮简单的一件事,只要克服了属性相依的问题之后,要反安装只要下达rpm –e package 即可!但是 tarball可没有这么简单呢!因为他并没有纪录当初安装档案的数据库,所以,要反安装的时候,可能需要一个档案一个档案的手动去除?嗄?这么麻烦?那么有没有什么方法可以比较容易管理呢?有呀!就是利用安装在特定的目录下的方式来管理,就会比较清楚一点!而且也会比较容易未来进行主机的移交作业?通常我们会给您这样的建议:<br> <ol><li><font color="#000066">最好将 tarball 的原始数据解压缩到 /usr/local/src当中;</font></li><li><font color="#000066">安装时,最好安装到 /usr/local 这个预设路径下;</font></li><li><font color="#000066">考虑未来的反安装步骤,最好可以将每个套件单独的安装在/usr/local 底下,例如安装 rp-pppoe-2.6.tar.gz 时,则可以指定该套件需要安装于/usr/local/rp-pppoe 当中,如此一来,如果该套件会将所有的数据都写入 /usr/local/rp-pppoe当中,因此,未来如果要移除该套件,只要将该目录删除即可视为成功的移除了!</font></li><li><font color="#000066">不过单独安装某个套件在某一特定路径下的作法,会导致当有man page 的时候,使用预设的 MANPATH 会找不到相关的说明档案内容。这个时候就必须要将man page 的路径加到 /etc/man.config 档案中了!否则使用 man 也查询不到指令的使用方法的。以上面的例子为例,如果是安装了/usr/local/rp-pppoe 当中,通常 man page 会放在 /usr/local/rp-pppoe/man当中,所以,您就必需要在 /etc/man.config 里面差不多 40~50 行左右的地方,加入底下这一行:</font></li><ol><font color="#000066" face="SimSun">MANPATH /usr/local/rp-pppoe/man</font></ol><font color="#000066">这样就可以使用 man 来查询资料啰!</font></ol> <br><hr width="100%"><li><a name="tarball_need"></a><font size="+1" color="#000099">Tarball需要的基础套件</font></li><br>虽然 Tarball 在安装上面可以说『相当的简单』,因为只要顺着解开压缩之后目录里面的README 或 INSTALL 就可以安装成功了!但是仍然有部分的困扰,例如:如果常常上BBS 或者是新闻群组讨论区的朋友,应该不难发现这个发问『我在执行某个程序的侦测档案时,他都会告诉我没有gcc 这个套件,这是怎么回事?』还有:『我没有办法使用 make 耶!这是什么问题?』呵呵!必须要告诉大家的是,使用tarball 的安装时,『一定』需要几个对象才行!这些对象在 Mandrake 或者是其它的distribution 时,『预设都是不选择的』,所以在安装 Linux 的时候,请特别留意选择的类别呢!底下这些东西都是必需的:<br> <ol><li><b><font color="#000066">需要 Kernel sources files</font></b>:常常一些Tarball 在安装时,会使用到 Kernel 的源文件,亦即在 /usr/src/linux 这个目录底下的档案,而该目录是需要安装或者编译过核心才会存在的目录!这个问题最常发生在『驱动程序的安装与编译』方面。所以当您在安装Linux 的时候没有选择 Kernel source 或者在之后没有编译核心时,呵呵!那么可能就没有办法安装了!</li><br> <li><b><font color="#000066">需要 make 及 autoconfig 等套件</font></b>:需要另外注意的就是,我们还需要make 这个套件才行!除此之外,还有 autoconfig 等等的套件也需要安装才行!这两个东西可以让参数设定档( 通常就是 Makefile 这个档案 )顺利的被执行。</li><br> <li><b><font color="#000066">需要 gcc 或 cc 等编译软件 ( compiler )</font></b>:如果没有编译的软件,那么自然也就无法将原始程序代码编译成可以执行的档案啦!所以至少要有一种编译器才行!在GNU 架构的 Linux 上面,我们通常使用的是 gcc 这个加强功能的 C 语言编译器啦!请注意:除了gcc 之外,连同上面的 make 等等的套件,几乎都在安装 Linux 的时候的那个 SoftwareDevelopment 咚咚里头!也就是说,若是您当初 安装 的时候,选择的是我建议的那种安装方式的话,那么您的tarball 安装应该问题不大,若是没有安装的话,那么肯定很多的套件是无法编译成功的!这个时候只好拿出您的原版光盘,一个一个RPM 套件加入您的 Linux 系统当中吧! @_@</li><br> <li><b><font color="#000066">特别留意安装时候的选择工具</font></b>:由于在安装的时候『预设选项并没有将Kernel Development 及 Software Development 加入安装的行列』,所以您如果选择预设选项的话,呵呵!那么使用tarball 的工具就会显的力不从心!这一点还请特别特别留意呢!</li></ol> <br><hr width="100%"><li><a name="tarball_install_step"></a><font size="+1" color="#000099">一般安装步骤:</font></li><br><font color="#000000">基本上, tarball 的安装主要就是:</font><br><font color="#000000"> </font><ol><li><font color="#000066">将 tarball 在 /usr/local/src 解压缩;</font></li><li><font color="#000066">在软件解压缩的路径下建立 Makefile 这个参数设定档案;</font></li><li><font color="#000066">以 make 这个程序并使用该目录下的 Makefile 做为他的参数设定档,来进行make (编译或其它) 的动作;</font></li><li><font color="#000066">以 make 这个程序,并以 Makefile 这个参数设定档,依据install 项目的指定来安装到正确的路径!</font></li></ol><font color="#000000"> </font><br><font color="#000000">此外,通常在每个软件的 tarball 中,都会附上 INSTALL或者是 README 这种档名的说明档,这些说明档请『务必详细阅读』过一遍,通常这些档案会记录这个软件的安装要求、软件的工作项目、与软件的安装参数设定及技巧等,只要仔细的阅读完这些档案,基本上,要安装好tarball 的档案,都不会有什么大问题啰?那么那个 make 在干嘛?一般而言, make会依据 Makefile 这个档案的内容,去执行清除目标文件(object file)或者是编译或者是安装的步骤,对于安装source code 的人来说,这个 make 是相当重要的!在 Makefile 这个档案中,会有一些不同的步骤应该要进行的工作项目,例如clean, install, compile 等等,而如果要执行清除的步骤,就是 make clean ,安装就下达make install ,亦即 make 后面接欲进行的工作,那么 make 这个工具就会依据Makefile 这个档名的档案去读取相关的步骤讯息,而进行该有的动作!</font><br><font color="#000000"> </font><br><font color="#000000">OK!我们底下约略提一下大部分的 tarball 软件之安装的指令下达方式:</font><br><font color="#000000"> </font><ol><li><b><font color="#000066" face="SimSun">./configure </font></b><font color="#000000">:这个步骤就是在建立Makefile 这的档案啰!通常程序开发者会写一支 scripts 来检查您的 Linux 系统、相关的套件属性等等,这个步骤相当的重要,因为未来您的安装信息都是这一步骤内完成的!另外,这个步骤的相关信息应该要参考一下该目录下的README 或 INSTALL 相关的档案!!基本上,这个步骤完成之后会建立(或修改)一个Makefile ,这就是参数档啦!</font></li><br><font color="#000000"> </font><li><b><font color="#000066" face="SimSun">make clean</font></b><font color="#000000">:make会读取 Makefile 中关于 clean 的工作。这个步骤不一定会有,但是希望执行一下!为什么呢?因为在进行编译的时候,会产生一些*.o 的档案,例如有个 abc.c 的原始码,经过编译后会变成 abc.o 的档案!我们称这些档案为object file,这些档案如果之前已经编译过并留下来的话,那么这次再编译的时候,就不会编译该档案,然而由于我们可能已经修改了部分的参数,因此该档案的编译结果事实上应该会有所不同!因此,为了避免前一次留下来的数据可能影响到这次编译的结果,所以通常可以进行一下这个步骤啰!</font></li><br><font color="#000000"> </font><li><b><font color="#000066" face="SimSun">make</font></b><font color="#000000">:make会依据 Makefile 当中的预设工作进行编译的行为!编译的工作主要是进行 gcc来将原始码编译成为可以被执行的 object files ,但是这些 object files 通常还需要一些函式库之类的link 后,才能产生一个完整的执行档!使用 make 就是要将原始码编译成为可以被执行的可执行档,而这个可执行档会放置在目前所在的目录之下,尚未被安装到预定安装的目录中;</font></li><br><font color="#000000"> </font><li><b><font color="#000066" face="SimSun">make install</font></b><font color="#000000">:通常这就是最后的安装步骤了,make会依据 Makefile 这个档案里面关于 install 的项目,将上一个步骤所编译完成的数据给他安装到预定的目录中,就完成安装啦!</font></li><br><font color="#000000"> </font><li><b><font color="#000066">特别留意</font></b><font color="#000000">:请注意,上面的步骤是一步一步来进行的,而其中只要一个步骤无法成功,那么后续的步骤就完全没有办法进行的!因此,要确定每一的步骤都是成功的才可以!举个例子来说,万一今天你在./configure 就不成功了,那么就表示 Makefile 无法被建立起来,要知道,后面的步骤都是根据Makefile 来进行的,既然无法建立 Makefile ,后续的步骤当然无法成功啰!另外,如果在make 无法成功的话,那就表示源文件无法被编译成可执行档,那么 make install主要是将编译完成的档案给他安装下去的,既然都没有成功的执行档了,怎么进行安装?所以啰,要每一个步骤都正确无误才能往下继续做!此外,如果安装成功,并且是安装在独立的一个目录中,例如/usr/local/packages 这个目录中好了,那么您就必需手动的将这个套件的 manpage 给他放到 /etc/man.config 里面去,设定的方法如<a href="#tarball">前面</a>提到的一般所示。</font></li></ol><font color="#000000"> </font><br><hr width="100%"><li><a name="tarball_upinstall"></a><font size="+1" color="#000099">Tarball的移除与升级:</font></li><br>再来就要谈到恼人的 tarball 的移除跟升级了?Tarball的移除难易度跟(1)当初设定参数文件时候的安装目录与(2)这个套件本身要求的档案放置目录有关。如果我们以apache 这个软件来说明的话( 您的系统不见得有装 ),那么如果您以 RPM 的安装方式来安装时,会发现他的档案放在哪里呢?大多是放在:<br> <ul><li><font color="#000066" face="SimSun">/etc/httpd</font></li><li><font color="#000066" face="SimSun">/usr/lib</font></li><li><font color="#000066" face="SimSun">/usr/bin</font></li><li><font color="#000066" face="SimSun">/usr/share/man</font></li></ul> <br>我们会发现他大致上是摆在 etc, lib, man, bin 等目录当中,分别代表『设定、函式库、在线说明档、执行档』,一个套件通常会将他的内容分为这四个目录来放置,好了,那么你是以tarball 来安装时呢?如果是放在预设的 /usr/local 里面,由于 /usr/local 原本就预设这几个目录了,所以你的数据就会被放在:<br> <ul><li><font color="#000066" face="SimSun">/usr/local/etc</font></li><li><font color="#000066" face="SimSun">/usr/local/bin</font></li><li><font color="#000066" face="SimSun">/usr/local/lib</font></li><li><font color="#000066" face="SimSun">/usr/local/man</font></li></ul>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?