一、说明
如果我们是以软件包的格式来划分的,常见的Linux发行版主要可以分为两类,类ReadHat系列和类Debian系列,这两类系统分别提供了自己的软件包管理系统和相应的工具。
类RedHat系统中软件包的后缀是rpm,类Debian系统中软件包的后缀是deb。另一方面,类RedHat系统提供了同名的rpm命令来安装、卸载、升级rpm软件包,类Debian系统同样提供了dpkg命令来对后缀是deb的软件包进行安装、卸载和升级等操作。
rpm的全称是Redhat Package Manager,常见的使用rpm软件包的系统主要有Fedora、CentOS、openSUSE、SUSE企业版、PCLinuxOS以及Mandriva Linux、Mageia等,使用deb软件包后缀的类Debian系统最常见的有Debian、Ubuntu、Finnix等。
RPM这个软件管理的机制是由 Red Hat 这家公司发开发出来的, RPM 是以一种数据库记录的方式来将你所需要的软件安装到你的 Linux 系统的一套管理机制。
它最大的特点就是将你要安装的软件先编译过, 并且打包成为 RPM 机制的包装文件,通过包装好的软件里默认的数据库记录, 记录这个软件要安装的时候所依赖的软件,当在你的 Linux 主机进行安装时, RPM 会先依照软件里的数据查询 Linux 主机的依赖软件是否满足, 若满足则予以安装,若不满足则不予安装。那么安装的时候就将该软件的信息整个写入 RPM 的数据库中,以便未来的查询、验证与卸载!


这样一来的优点是:
1. 由于已经编译完成并且打包完毕,所以软件传输与安装上很方便 (不需要再重新编译)
2. 由于软件的信息都已经记录在 Linux 主机的数据库上,很方便查询、升级与卸载
但是这也造成些许的困扰,由于 RPM 文件是已经包装好的数据,也就是说, 里面的数据已经都『编译完成』了!所以,该软件文件几乎只能安装在原本默认的硬件与操作系统版本中。 也就是说,你的主机系统环境必须要与当初创建这个软件文件的主机环境相同才行!
举例来说,rp-pppoe 这个 ADSL 拨接软件,它必须要在 ppp 这个软件存在的环境下才能进行安装!如果你的主机并没有 ppp 这个软件,那么很抱歉,除非你先安装 ppp 否则 rp-pppoe 就是不让你安装的 (当然你可以强制安装,但是通常都会有点问题发生就是了!)。
所以,通常不同的 distribution (发行版)所释出的 RPM 文件,并不能用在其他的 distributions 上。举例来说,Red Hat 释出的 RPM 文件,通常无法直接在 SuSE 上面进行安装的。更有甚者,相同 distribution 的不同版本之间也无法互通,例如 CentOS 6.x 的 RPM 文件就无法直接套用在 CentOS 7.x 。
因此,这样可以发现这些软件管理机制的问题是:
1. 软件文件安装的环境必须与打包时的环境需求一致或相当
2. 需要满足软件的相依属性需求
3. 卸载时需要特别小心,最底层的软件不可先移除,否则可能造成整个系统的问题
那怎么办?如果我真的想要安装其他 distributions 提供的好用的 RPM 软件文件时? 呵呵!还好,还有 SRPM 这个东

最低0.47元/天 解锁文章
933





