centos tarball安装指南

1.安装

Tarball 方式释出的软件是需要重新编译可执行的 binary program 的。而 Tarball 是以tar 这个指令来打包与压缩的文件,所以啦,当然就需要先将 Tarball 解压缩,然后到原始码所在的目录下进行 makefile 的建立,再以 make 来进行编译与安装的动作啊!所以整个安装的基础动作大多是这样的:

  1. 取得原始档:将 tarball 文件在 /usr/local/src 目录下解压缩;(在预设的情况下,原本的 Linux distribution 释出安装的软件大多是在 /usr 里面的,而用户自行安装的软件则建议放置在 /usr/local 里面。这是考虑到管理用户所安装软件的便利性。)几乎每个软件都会提供联机帮助的服务,那就是 info 与 man 的功能。在预设的情况下, man 会去搜寻 /usr/local/man 里面的说明文件, 因此,如果我们将软件安装在 /usr/local底下的话,那么自然安装完成之后, 该软件的说明文件就可以被找到了。所以啰,通常我们会建议大家将自己安装的软件放置在 /usr/local 下,至于原始码 (Tarball)则建议放置在 /usr/local/src (src 为 source 的缩写)底下啊。
  2. 取得步骤流程:进入新建立的目录底下,去查阅 INSTALL 与 README 等相关文件内容 (很重要的骤!);
  3. 相依属性软件安装:根据 INSTALL/README 的内容察看并安装好一些相依的软件 (非必要);
  4. 建立 makefile:以自动侦测程序 (configure 或 config) 侦测作业环境,并建立 Makefile 这个文件;
  5. 编译:以 make 这个程序并使用该目录下的 Makefile 做为他的参数配置文件,来进行 make (编译或其他)
    的动作;
  6. 安装:以 make 这个程序,并以 Makefile 这个参数配置文件,依据 install 这个目标 (target) 的指定来安
    装到正确的路径!
    注意到上面的第二个步骤,通常在每个软件在释出的时候,都会附上 INSTALL 或者是 README 这种档名的说明档,这些说明档请『确实详细的』 阅读过一遍,通常这些文件会记录这个软件的安装要求、软件的工作项目、 与软件的安装参数设定及技巧等,只要仔细的读完这些文件,基本上,要安装好 tarball 的文件,都不会有什么大问题啰。
    至于 makefile 在制作出来之后,里头会有相当多的目标 (target),最常见的就是 install 与 clean 啰!通常『make clean』代表着将目标文件 (object file) 清除掉,**『make』则是将原始码进行编译而已。 注意喔!编译完成的可执行文件与相关的配置文件还在原始码所在的目录当中喔!**因此,最后要进行『make install』来将编译完成的所有咚咚都给他安装到正确的路径去,这样就可以使用该软件啦!OK!我们底下约略提一下大部分的 tarball 软件之安装的指令下达方式:
  7. ./configure
    这个步骤就是在建立 Makefile 这个文件啰!通常程序开发者会写一支 scripts 来检查你的 Linux 系统、相关的软件属性等等,这个步骤相当的重要, 因为未来你的安装信息都是这一步骤内完成的!另外,这个步骤的相关信息应该要参考一下该目录下的 README 或 INSTALL 相关的文件!
  8. make clean
    make 会读取 Makefile 中关于 clean 的工作。这个步骤不一定会有,但是希望执行一下,因为他可以去除目标文件!因为谁也不确定原始码里面到底有没有包含上次编译过的目标文件 (*.o) 存在,所以当然还是清除一下比较妥当的。 至少等一下新编译出来的执行档我们可以确定是使用自己的机器所编译完成的嘛!
  9. make
    make 会依据 Makefile 当中的预设工作进行编译的行为!编译的工作主要是进行 gcc 来将原始码编译成为可以被执行的 object files ,**但是这些 object files 通常还需要一些函式库之类的 link 后,**才能产生一个完整的执行档!使用 make 就是要将原始码编译成为可以被执行的可执行文件,而这个可执行文件会放置在
    目前所在的目录之下, 尚未被安装到预定安装的目录中
  10. make install
    通常这就是最后的安装步骤了,make 会依据 Makefile 这个文件里面关于 install 的项目,将上一个步骤所编译完成的数据给他安装到预定的目录中,就完成安装啦!请注意,上面的步骤是一步一步来进行的,而其中只要一个步骤无法成功,那么后续的步骤就完全没有办法进行的!因此,要确定每一的步骤都是成功的才可以!如果安装成功, 并且是安装在独立的一个目录中,例如 /usr/local/packages 这个目录中好了,那么你就必需手动的将这个软件的 man page 给他写入 /etc/man_db.conf 里面去。

2.升级与移除

软件的内容大致上是摆在 etc, lib, bin, man 等目录当中,分别代表『配置文件、函式库、执行档、联机帮助档』。好了,那么你是以 tarball 来安装时呢?如果是放在预设的 /usr/local 里面,由于 /usr/local 原本就默认这几个目录了,所以你的数据就会被放在:
 /usr/local/etc
 /usr/local/bin /usr/local/lib
 /usr/local/man
但是如果你每个软件都选择在这个默认的路径下安装的话, 那么所有的软件的文件都将放置在这四个目录当中,因此,如果你都安装在这个目录下的话, 那么未来再想要升级或移除的时候,就会比较难以追查文件的来源啰! 而如果你在安装的时候选择的是单独的目录,例如我将 apache 安装在/usr/local/apache 当中,那么你的文件目录就会变成:
 /usr/local/apache/etc
 /usr/local/apache/bin
 /usr/local/apache/lib
 /usr/local/apache/man
呵呵!单一软件的文件都在同一个目录之下,那么要移除该软件就简单的多了! 只要将该目录移除即可视为该软件已经被移除啰!以上面为例,我想要移除 apache 只要下达『rm -rf /usr/local/apache』就算移除这个软件啦!当然啰,实际安装的时候还是得视该软件的 Makefile 里头的 install 信息才能知道到底他的安装情况为何的。因为例如 sendmail 的安装就很麻烦…这个方式虽然有利于软件的移除,但不晓得你有没有发现,我们在执行某些指令的时候,与该指令是否在 PATH 这个环境变量所记录的路径有关,以上面为例,我的 /usr/local/apache/bin 肯定是不在PATH 里面的,**所以执行 apache 的指令就得要利用绝对路径了,**否则就得将这个/usr/local/apache/bin 加入 PATH 里面。另外,那个 /usr/local/apache/man 也需要加入 man page 搜寻的路径当中啊!
除此之外, Tarball 在升级的时候也是挺困扰的,怎么说呢?我们还是以 apache 来说明好了。WWW
服务器为了考虑互动性,所以通常会将 PHP+MySQL+Apache 一起安装起来 (详细的信息请参考服务器架设篇) ,果真如此的话,那么每个软件在安装的时候『都有一定的顺序与程序!』 因为他们
三者之间具有相关性,所以安装时必需要三者同时考虑到他们的函式库与相关的编译参数。
假设今天我只要升级 PHP 呢?有的时候因为只有涉及动态函式库的升级,那么我只要升级 PHP 即
可!其他的部分或许影响不大。但是如果今天 PHP 需要重新编译的模块比较多,那么可能会连带的,
连 Apache 这个程序也需要重新编译过才行!真是有点给他头痛的!没办法啦!使用 tarball 确实有
他的优点啦,但是在这方面,确实也有他一定的伤脑筋程度。
由于 Tarball 在升级与安装上面具有这些特色,亦即 Tarball 在反安装上面具有比较高的难度 (如果
你没有好好规划的话~),所以,为了方便 Tarball 的管理,通常鸟哥会这样建议使用者:

  1. 最好将 tarball 的原始数据解压缩到 /usr/local/src 当中;
  2. 安装时,最好安装到 /usr/local 这个默认路径下;
  3. 考虑未来的反安装步骤,最好可以将每个软件单独的安装在 /usr/local 底下;
  4. 为安装到单独目录的软件之 man page 加入 man path 搜寻:
    如果你安装的软件放置到 /usr/local/software/ ,那么 man page 搜寻的设定中,可能就得要在
    /etc/man_db.conf 内的 40~50 行左右处,写入如下的一行:
    MANPATH_MAP /usr/local/software/bin /usr/local/software/man这样才可以使用 man 来查询该软件的在线文件啰!

你可能感兴趣的:(centos)