鸟哥的 Linux ADSL 私房菜


RPM Tarball 套件管理员
本文已经经过大幅度修改,请分别参考:(这个网页内容将不再继续维护)
原始码与 Tarball 套件管理员
RPM 套件管理员
最近更新日期:2003/02/11

为何需要升级套件
RPM 套件管理程序
  什么是 RPM 、 SRPM
  什么是 i386, i586, i686, noarch
  SRPM 与 RPM 所需要的安装目录
  RPM 的指令使用
    安装
    升级与更新
    查询
    验证
    反安装与重建数据库
Tarball 管理方法
  什么是 Tarball ( source code )
  Tarball 需要的基础套件
  Tarball 安装的基本步骤
  Tarball 的移除与升级
要选择 RPM 还是 Tarball
函式库资料ldconfig, ldd,
检验软件正确性md5sum
网络资源
本章习题练习

为何需要升级套件
这真是一个很有趣的课题,为何需要升级套件?如果我的机器运作的好好的,那么我干嘛需要升级?通常我们升级的原因主要有三个: 在上面的需求当中,尤其需要注意的是第二点,当一个套件有安全上的顾虑时,千万不要怀疑,赶紧更新套件吧!否则造成网络危机,那可不是闹着玩的?那么更新的方法有哪些呢?其实,目前在 Linux 里面有相当多的不同的更新套件的方式,包括了 Red Hat 发展的 RPM 与 up2date 的在线更新模式; Debian 这个 distribution 里头使用的 dpkg 方法;Sun Unix 上面使用的 pkg 升级方式;目前越来越流行的 apt 在线更新模式;还有原始码里头最常使用的 Tarball 编译方法等等,如果要一个一个说明的话那也太累人了?所以,这里我们以目前在 Mandrake, Red Hat, OpenLinux 等 Linux distributions 内常见的 RPM 与 Tarball 的套件升级方式来进行说明: 这两种方法是各有优缺点啦,我们这里想要来谈一谈 RPM 与 Tarball 的安装方式了!

RPM套件管理员:
Tarball 套件管理员:
要选择 RPM 还是 Tarball?
优先选择 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 一个一个的安装,包括新套件的相依套件! ^_^ .....我是不会这么做的啦! )
简易方法:
所以这个时候 Tarball 的方式就特别适合您的安装了!这是因为 Tarball 可以自行设定编译时的参数,此外,也可以自行设定『安装路径』,相当的适合于想要安装『多个不同版本的同一个套件』的情况!这是怎么说呢?!由于 RPM 必须要配合系统里面其它的相依属性的套件,所以基本上,他的安装路径(就是每个档案的放置路径)理论上是放死的,就是不能随意的改变他的安装路径,因此,当有两个不同版本的相同套件想要测试的时候,大概一定就得将原先的版本移除之后,才能安装使用先的版本啰!(此外,由于相依的套件几乎都已经包含在 tarball 当中了,所以安装上面其实并不难啦!)
然而 tarball 可不是这样的!你可以自行编译并且安装在不同的路径,只要在启动的时候启动适当的版本,那么不同版本的套件可以同时的存在于一个系统当中,而且可以透过选择启动的档案来启动不同的版本。当然啰!你也可以让 tarball 的安装与 RPM 的安装同时存在于一个系统当中,但是需要特别留意的是,你在启动该套件的时候,千万记得你的启动路径!免得启动到了错误的版本了!呵呵!(这也是一个系统存在不同多个版本的套件容易发生的错误!希望大家都能够了解这个问题呢!)
所以说,为了避免这种路径上的错误困扰,基本上,我们都希望 Tarball 的安装路径可以设定在 Linux 原本就规划要给大家安装的路径『 /usr/local 』这个路径下!这样可以省去相当多寻找档案的时间!而且在管理上面也会比较容易!呵呵!
不过, Tarball 最麻烦的地方有几点: 所以说,RPM 与 Tarball 各有其优缺点,不过,如果有 RPM 的话,那么优先权还是在于 RPM 安装上面,毕竟管理上比较便利,但是如果套件的架构差异性太大,或者是无法解决相依属性的问题,那么与其花大把的时间与精力在解决属性相依的问题上,还不如直接以 tarball 来安装,轻松又惬意!

函式库资料: ldconfig, ldd,

检验软件正确性
在我们的 Linux 系统当中,为了怕系统商( distribution )推出的档案被修改过,因此都会有所谓的 MD5 的软件指纹验证功能!例如在南台湾最大的 ftp 学术网站 中山大学的 ftp 网站 里头的 Red Hat 7.3 这个可开机光盘的完整套件,在该目录底下,除了完整的的可开机光盘的映象文件(image)之外,还会附上一个档名为 MD5SUM 的档案,这个档案的内容有点像这样:
 
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

c9a4d963a49e384e10dec9c2bd49ad73  valhalla-SRPMS-disc1.iso
41b03d068e84d2a17147aa27e704f79b  valhalla-SRPMS-disc2.iso
cb91810ce8173039fed24420407e4c59  valhalla-i386-disc1.iso
ec1b813d32ffdc8edc2be261735d17de  valhalla-i386-disc2.iso
5dc81ce523cfddf99b4d4d63e91bcaa7  valhalla-i386-disc3.iso
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.6 (GNU/Linux)
Comment: For info see http://www.gnupg.org

iD8DBQE8z/oCIZGAzdtCpg4RAsMvAJ9+xOn4Pw1T0mp8zVT64cEDWuqqKwCfblTd
4Lw0SvJC+v/6JbGIxJWL7aA=
=0xs+
-----END PGP SIGNATURE-----

 
这说明的是,『在 valhalla-i386-disc1.iso 这个档案中,有个 MD5SUM 的档案指纹表,如果该档案是原本开发厂商提供的档案时(没有被修改过!),则以 md5sum 这支程序进行检验时,会得到左边的指纹表!』那有什么用呢?!呵呵!用途可大了,前一阵子不是常常发现有些免费的软件被利用来作为收集使用者的电子邮件、常上网站数据,及其它使用者私人的信息吗?嘿嘿!那就是利用软件的特性来『偷』使用者的咚咚,那么万一 Red Hat 提供的光盘映象文件(image)被下载之后,让有心人士偷偷修改过,再转到 Internet 上面流传,那么你下载的这个档案偏偏不是原厂提供的,呵呵!你能保证该档案的内容完全没有问题吗?!当然不能对不对?!是的,这个时候就有 md5sum 这个档案指纹的咚咚出现啦!说说他的用法吧!

网络资源
刚刚最前面说过了,套件升级最主要的考虑就是『安全性』啦!所以请随时注意安全性方面的问题!目前国内的主要安全网站为:『台湾网络危机处理小组』这个组织,请随时注意上面发布的新闻!另外,如果跟鸟哥一样使用的是 Red Hat 的 distrubution 的话,那么 Red Hat 的 Errata 网页则不可不光临!好啦!底下列出几个 RPM 相关的网页与 Red Hat 的 Errata 网页提供大家参考啰!

本章习题练习 ( 要看答案请将鼠标移动到『答:』底下的空白处,按下左键圈选空白处即可察看 )

2002/08/21:第一次完成
2003/02/11:重新编排与加入 FAQ
2004/04/10:已经更新至新版内容,这个网页将不再维护!



Designed by VBird during 2001-2004.  Aerosol Lab.