Chinaunix首页 | 论坛 | 博客

分类: LINUX

2009-02-12 15:24:48

  
  # 优先选择 RPM:
  这一直是个有趣的问题:‘如果我要升级的话,或者是全新安装一个新的套件, 那么该选择 RPM 还是 Tarball 来安装呢?’!基本上,如果有 RPM 可以提供给您的 distribution 来安装,并且没有严重的相依属性的问题时,呵呵!选择 RPM 来安装会是一个比较好的解决方案, Why ?这是由于刚刚上面就提到的 RPM 的好处 啦!可以具有档案与资料均有纪录的优点,这就是上面提到的 /var/lib/rpm 这个目录里面的资料库,这个记录可以让你在管理上更为便利,包括上面提到的 RPM 的升级、安装、验证与移除等等。尤其是在查询上面!可以让你在管理你的系统上面更为便利。

  但是 RPM 也不是没有缺点的,包括最为大家所抱怨连连的‘ 属性相依 ’的问题,每一个不同版本之间,就必须要以不同的 RPM 档案来安装!此外,如果要升级‘某一个套件’而已时, 通常还需要连带其他的套件也必须要一起升级才行,否则会有问题!此外,当一个套件经过了‘ 大幅度的修改 ’之后,通常旧的 RPM 与新的 RPM 之间已经几乎无法‘完全相容’时, 呵呵!那么升级或者是移除的手续可是会累坏人的!

  例如前两年朋友们常常问到的 Apache 1.3.xx 与 2.0.xx 的版本升级问题! 由于这两个版本之间的架构差异性太大,加上版本属性相依问题,所以很难得到一个完满的解决方案,这个时候 RPM 就不那么合适了。( 除非您要一个一个的将 Apache 移除,连同其相依的套件,然后再将 Apache 一个一个的安装,包括新套件的相依套件! ^_^ .....鸟哥是不会这么做的啦! )

  # 简易方法:
  如果 RPM 档案并不是这么容易取得的话,这个时候 Tarball 的方式就特别适合您的安装了!这是因为 Tarball 可以自行设定编译时的参数,此外,也可以自行设定‘安装路径’, 相当的适合于想要安装‘多个不同版本的同一个套件’的情况( 说穿了就是测试机器 )!

  这是怎么说呢?!由于 RPM 必须要配合系统里面其他的相依属性的套件,所以基本上, 他的安装路径( 就是每个档案的放置路径 )理论上是必须要放在固定的目录的,就是不能随意的改变他的安装路径。 因此,当有两个不同版本的相同套件想要测试的时候,大概一定就得将原先的版本移除之后, 才能安装使用新的版本啰!(此外,由于相依的套件几乎都已经包含在 tarball 当中了,所以安装上面其实并不难啦!)

  相对于 RPM 的制式格式, tarball 可就灵活多了!你可以自行编译套件并且将他安装在不同的路径, 只要在启动的时候选择正确的版本,那么不同版本的套件可以同时的存在于一个系统当中, 而且可以透过选择启动的档案来启动不同的版本。当然啰!你也可以让 tarball 的安装与 RPM 的安装同时存在于一个系统当中,但是需要特别留意的是, 你在启动该套件的时候,千万记得你的启动路径!免得启动到了错误的版本了!呵呵!( 这也是一个系统存在不同多个版本的套件容易发生的错误! 希望大家都能够瞭解这个问题呢! )

  所以说,为了避免这种路径上的错误困扰,基本上,我们都希望 Tarball 的安装路径可以设定在 Linux 原本就规划要给大家安装的路径‘ /usr/local ’这个路径下!这样可以省去相当多寻找档案的时间! 而且在管理上面也会比较容易!呵呵!

  不过, Tarball 最麻烦的地方有几点:

  * 反安装:
  Tarball 最麻烦的地方就在于他的‘解安装’了! 相当的讨厌!如果是简单的直接将所有的套件安装在一个目录下的话,例如 /usr/local/mrtg 时,那么解安装还算简单,就是将该路径杀掉就 OK 啦!但是如果是类似 sendmail 这一种呢?他的路径都是已经放置死的( 需要在 /etc/sendmail.cf、/etc/mail 底下 )那么追踪反安装的路径就很烦人;

  * 线上查询:
  如果您的安装路径是在 /usr/local 底下的话,那么执行档会被放置到 /usr/local/bin ,或者是 /usr/local/sbin 底下,参数档会放在 /usr/local/etc 底下,线上查询档案会放在 /usr/local/man 底下,所以在设定上面还有查询上面还算简单( 路径设定一下即可! ),不过,如果你是将套件安装在单独的路径下呢?例如 /usr/local/mrtg 底下,那么执行档变成了 /usr/local/mrtg/bin 底下,最麻烦的地方就是 man page ( 线上查询 )放置的地点会变成在 /usr/local/mrtg/man 底下了!糟糕!那么预设的 man page 路径就找不到该说明档啰! 这个时候就必须要手动的将该路径加入 /etc/man.conf 这个档案中!而且执行档放置的路径也没有指定,可以经由 (1)Link 的方式或者 (2)设定 PATH 环境变数的方式将该路径加进去啦!确实是比较麻烦的啦!

  所以说,RPM 与 Tarball 各有其优缺点,不过,如果有 RPM 的话,那么优先权还是在于 RPM 安装上面,毕竟管理上比较便利,但是如果套件的架构差异性太大, 或者是无法解决相依属性的问题,那么与其花大把的时间与精力在解决属性相依的问题上,还不如直接以 tarball 来安装,轻松又惬意!

阅读(2423) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~