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