Linux由于其“自由”和“开放”的特性,衍生出了数百种各具特色的发行版。所谓发行版,就是在Linux内核外包装一些软件,如我们常见的RedHatLinux、红旗Linux、MandrakeLinux等等,其本质??内核还是一致的。但由于各种发行版侧重的用户群体不同,往往在使用上差异很大。
由于在Linux上接触最多的还是它的外围软件,各种Linux的发行版对于软件的管理方式便成了权衡的一个重要因素。对于一个操作系统来说,不能没有一个像样的软件包管理器。
没有软件包管理器的帮助,操作系统发行版的制作者将面临这样或那样的难题,用户安装、升级、卸载与发布软件包也将是非常麻烦的,系统管理也容易出现问题;相反,有了专门的软件包管理器,软件制作者易于制作和发行自己的软件了,而对于普通用户来说,软件包的安装维护将变得非常方便了。这样,对于一个操作系统的推广也会起到良好的促进作用。
我将Linux的软件管理方式分成三类:
①基于RPM的软件包管理方式;
②基于deb的软件包管理方式;
③基于源代码的软件管理。下面分别就这三类谈谈我的认识和感受。
基于RPM的软件包管理方式的发行版:RPM是RedHatPackageManager的缩写,意即RedHat(红帽子)软件包管理器。此类发行版的数量最多,用户群体也最大。国外有知名的如RedHatLinux、MandrakeLinux、SuSELinux,国内有红旗Linux,MagicLinux,中标普华Linux等等。
在这种Linux下安装软件,一般是选择已经编译好的RPM软件包,用rpm命令安装,系统会自动地把软件包解开,并复制到相应的目录中去,同时会在系统的数据库中加入软件包的相关信息。如果以后想要卸载某些软件,同样使用rpm命令加上参数-e,系统会去查询数据库,并删除相关的文件和目录。
安装、删除软件都还比较方便,再加上网上可以下载的RPM软件包数量非常之多,使用的人多从而容易交流,因此这类发行版作为用户入门的首选显得非常不错。笔者在这里首推RedHatLinux(以及后来的Fedora)和MagicLinux,一个是国外的发行版,一个是国内的。RPM毕竟是自家的产品,又有庞大的用户群,软件的兼容性做得比较好,而其他的发行版总要或多或少的改改以便体现各自的“特色”,这样一来就容易出现兼容性问题,也就是人们常说的“软件包依赖问题”。
国内的发行版之所以选择MagicLinux,主要是因为MagicLinux是一群爱好者们搞出来的Linux,没有多少商业化的驱使,对Linux本身改动很少,更容易让人体会到什么是“纯粹”的Linux,对于中文的支持也相当优秀。而红旗Linux和中标普华Linux太多地模仿Windows,对原本的Linux改动很大,正如前面所说,改动越大,日后越容易出现软件兼容性问题,笔者在这一点上是深有体会的。
当然,不可否认RPM的软件包管理方式也就其缺点,最主要的就是上面所提到的“软件包依赖性问题”。由于一些软件在运行是往往还需要其他软件的支持,而用rpm命令安装软件包时系统会先检查它需要的软件是否已经安装,如果发现有一个它所依赖的软件包没有安装,安装程序就会退出,并让你先安装上其他软件,而在安装其他软件时又有可能发生依赖性问题……可以想象有多么麻烦!虽然rpm命令提供了“强制安装”选项,但除非你有很大的把握,否则“强制安装”上去的软件很难正常工作。
为了解决这一恼人的问题,一些发行版使用了自己的解决方案,如MandrakeLinux在RPM的基础上加了一个前端界面,发现依赖性问题是它会自动到指定的网站上搜索并下载安装;Fedora提供了一个名为yum的前端程序,发现RPM依赖性问题时也会到指定的网站上下载并安装。
不过RedHatLinux9及其以前的版本并未提供这样的功能。可喜的是,现在有一种APT软件包管理器正在从DebianLinux上向RedHatLinux上移植,大家可以在http://apt.freshrpms.net/上找到适合自己的APT软件包管理器,下载安装就可以了,它可以较好地解决依赖性问题。至于APT的具体使用方法,读者可以自行查阅相关资料。
基于deb的软件包管理方式的发行版:这种软件包管理方式主要用在DebianLinux上,目前国内的发行版如新华华镭Linux、Hiweed-DebianLinux也采用了这种方式。DebianLinux对于软件包的管理提供了多种工具,我所知道的有:
ldselect-使用菜单界面的软件包管理工具(最上层的包管理工具)
ldpkg-安装软件包(管理软件包中的文件)
lapt-get-安装软件包(管理软件包,CLIAPT)
ltasksel-安装任务套件(管理面向某方面任务的一套软件包)
laptitude-安装软件包(管理软件包和任务套件,ncursesAPT)
ldeity-另一种ncursesAPT
lsynaptic,gsynaptic-另一种GUIAPT
在自由软件里,以deb打包的软件数量是最多的。DebianLinux本身就是由世界各地的志愿者共同开发的,其理念也最接近Linux本质。它的软件包管理方式自诞生之日起就比RPM先进,可以说几乎没有所谓的依赖性问题,遇到缺少软件包的情况时会自动从网上下载或提示您需要哪一张光盘;也正因为如此,我们说DebianLinux对于网络的依赖性很大。
在DebianLinux下,无论是对于开发者还是最终用户,deb软件包都是较好的选择。DebianLinux下的软件极其丰富,而且增长速度又逐年加快,最为重要的是,Debian下软件包的发布都要经过很严格的测试,所以DebianLinux的稳定性几乎是一流的。DebianLinux先进的软件包管理方式也造成了它的在线升级极其简单容易--只需一个命令!你不用担心自己的Linux过时而重新安装一个新版本的Linux,DebianLinux可以自动做好这一切。
基于源代码的软件管理的发行版:这类Linux发行版较少,和其他发行版比起来有很大的不同。典型的有GentooLinux,LFS(严格地说LFS并不是一个Linux发行版)。以GentooLinux为例,它的灵活性很大。GentooLinux可以在一个一无所有的计算机上从源代码编译出一个完整的Linux操作系统,也可以像其他发行版那样安装已经编译好的软件包。
在GentooLinux下安装源代码软件非常方便,只要一个emerge命令即可,系统会自动编译安装,如果需要其他软件的支持,GentooLinux会先从网上下载并安装。由于GentooLinux安装软件时通常要编译源代码,因此花的时间也就很多。
比如你要从源代码安装OpenOffice,最好的办法是在晚上10点开始安装,第二天早上睡醒后一般就能安装上了^_^。但从源代码安装有不可比拟的好处,一个是能让你更加清楚Linux的原理,再就是由于是在自己的计算机上编译软件,编译后的二进制代码肯定更加适合自己的机器,运行速度往往比安装预先编译好的软件要快得多。所以有时候花点儿时间还是值得的。
刚才还提到了LFS,LFS是LinuxFromScratch的缩写,它是纯粹地从源代码编译出来的操作系统。安装它,你需要事先已经安装有一个Linux和一份安装手册。按照安装手册的说明在网上下载相应的源代码,在现有的Linux系统上编译另一个能够独立运行的Linux,听起来很富有挑战意义对吗?LFS的安装是最困难的,它根本就没有软件包的概念。
LFS是完全由你来控制的,当你成功地安装了LFS后,你会对Linux有更加深入的认识。
总结:如果你刚刚接触Linux,不妨选择第一类,RPM的软件包很多,在中国也很流行,遇到问题了也容易请教,笔者推荐以RedHatLinux、Fedora或MagicLinux来入门。如果你是一个Linux的使用者,看重方便和稳定,那么DebianLinux自然是你的首选。
如果你认为对Linux有了一定的了解,想更好地“玩”Linux,或是想用Linux构建一个专门用途的高性能平台,那就选择GentooLinux或LFS吧!总之,一切的选择权在你自己!
上一篇:如何在Linux环境下安装与配置Oracle
下一篇:Linux的目录里都是些什么