Debian和Gentoo包管理机制比较及延伸

2016-01-29 18:00 37 1 收藏

Debian和Gentoo包管理机制比较及延伸,Debian和Gentoo包管理机制比较及延伸

【 tulaoshi.com - Linux 】

如果你现在想安装一套Linux,又不想随着Linux发行版本的版本号,不停的格式化系统,重新安装,或者升级安装。那么,最适合你的只有LFS、Debian和Gentoo。

本文尝试对Debian、Gentoo的包管理机制进行比较,并由此得出了几个有趣的结论。本文对于Debian、Gentoo的包管理,主要谈缺陷和不足,并且尝试提出解决方法。最后,本人水平有限,失误、不足之处在所难免,还望大家批评指正。

Debian是老牌的发行版本,有人甚至认为Debian就是GNU/Linux本身,但是,据Debian自己的了解。它只是碰巧通过Linux实现了而已。(Debian,似乎是一种思想?一种生活方式?)

Gentoo是新生的,成长迅速的发行版本。说他成长迅速,不仅在于它提供了主流和非主流的基于各种硬件的Linux的实现,更在于,它还同时提供*bsd、MacOSX、Sun Solaris(就在Sun开放Solaris之后不久)版本的portage。(最初认识Gentoo,是在QQ上与OpenQ的创始人PuzzleBird聊天,他把Gentoo形容成是下一代的Debian。于是偶相信了,开始了艰难的安装。 不过,还是感谢PuzzleBird,是他让我看到rpm之外的世界,之前偶都是用基于rpm版本的发行版的)

典型的Debian提供一种基于i386编译的二进制deb包,采用了一套完整有效的工具指令集来保证整个系统软件包的完整、清洁和有效。

Gentoo的传统上,虽然也提供二进制包,但是,大家意义上的Gentoo,更在于通过源码编译属于自己的系统。通过USE的各个级别(配置文件级别、命令行级别)的设置,Gentoo能够让你轻松得到完全属于自己的,独一无二的Linux系统。

比较:由于软件包提供的格式不同(一种是二进制文件,一种是源码)。Debian与Gentoo相比,有着更快的系统安装效率。同样的网络情况下,安装Debian要比Gentoo节省更多的时间,通常只需要几个小时,你就可以得到一套完成的Debian系统(包含KDE等等完整的桌面环境)。但是,在我看来,Debian的缺点在于,Debian基于deb的依赖性审查过于严格。也许是因为直接提供的二进制包的缘故。Debian对于同一套软件的细微不同版,也认为是完全不同的。

ibqt3-mt-dev对下面两个有依赖,可是下面两个已经有firefly补丁的版本了。

提示:

libfreetype6-dev: Depends: libfreetype6 (= 2.1.7-2.3) but 2.1.7-2.3firefly is to be installedlibxft-dev: Depends: libxft2 (= 2.1.2-6) but 2.1.2-6firefly is to be installedDepends: libfontconfig1-dev but it is not going to be installed

同样的一个软件包,只是由于编译时的小补丁的不同,就完全不能满足Debian要求的依赖关系。只能推倒,重建系统。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/linux/)

同样的情况,在Gentoo中完全可以通过同一套源码,配置不同USE来实现。也就是说,在Gentoo中,由于个人USE的设置的不同,上面的Debian的两个包,在Gentoo看来就是一个包,只是配置时候的打了不同的补丁。因此,没有所谓的因为依赖而不能安装的问题。

举例:假设该软件包有两个不同USE,一个是common,一个是firefly,那么对于Gentoo,只要你设定了是采用USE="common"编译,还是采用USE="common, firefly"编译,系统在编译软件包的时候,就会自动决定究竟是否打上firefly的patch。也就是说,在Gentoo中,允许同时存在来自同一源码的,编译时配置不同的二进制文件的存在,而Gentoo在处理依赖时候,除非是的确找不到依赖的文件。否则,Gentoo不会提示出依赖错误(因为确实没有错误)。而Debian在这一点上是过于严格了。

Gentoo的包管理的主要缺点在于采用源码编译,不能够满足快速安装系统的需要。同时,一旦系统的基准USE发生了变化(这经常发生,尤其是你还是Gentoo新手的时候,你很可能因为不知道哪个软件包采用那种USE才好,而在基准中加入了过多的USE),虽然可以采用emerge --new-use world进行对新USE的编译,但是,这时的Gentoo的依赖的包的编译顺序有时会有问题,而导致编译失败。(这个其实是一个依赖的问题,明明正常是1、2、3的顺序可以编译成功的,但是--new-use之后,emerge可能会错误的安排成了2、1、3的顺序,而导致编译失败)。

综上,Debian的问题在于依赖的过于严格。对于依赖的问题,可以采用的方法主要有。

1 强制安装。这是最下策,也是最麻烦的方法。(因为下次遇到

来源:http://www.tulaoshi.com/n/20160129/1503912.html

延伸阅读
PowerBook G3 Fluxbox+idesk下面是xfce4
标签: SQLServer
在改进SQL Server 7.0系列所实现的安全机制的过程中,微软建立了一种既灵活又强大的安全管理机制,它能够对用户访问SQL Server服务器系统和数据库的安全进行全面地管理。按照本文介绍的步骤,你可以为SQL Server 7.0(或2000)构造出一个灵活的、可管理的安全策略,而且它的安全性经得起考验。 一、验证方法选择 本文对验证(authenticat...
本文详细介绍了SQL Server对XML支持,其中增强的特性,全新的面向XML的存储体系,SQL Server认证机制的安全性改进,分级的数据库访问实体机制,借助CLR控制.Net Assembly的执行过程,上下文定义特性等。 Internet:我用最XML的方式支持你 SQL Server对XML支持 Internet平台应用除了通信部分与其他应用有本质区别外,作为基...
13岁男孩,小学六年级学生,10岁时随同学去网吧玩互动游戏,开始每周放学后仅去1~2次,到时间自己知道回家,,以后逐渐迷恋于网上暴力游戏,去网吧次数增多,上网时间不断延长,常通宵达旦在网吧度过。自从玩网络游戏后,患者常逃学,上课注意力不集中,记忆力下降,终日不忘网上活动情景,学习成绩每况愈下。患者变得孤独,对同学冷漠,...
关于Debian/GNU版本代号的解释 摘自Debian Reference 发布版代号来源到目前为止它们均出自Pixar的电影“玩具总动员(Toy Story)” Buzz(Buzz Lightyear)是个宇航员 Rex是只暴龙 Bo(Bo Peep)是个放羊的女孩 Hamm是个小猪攒钱罐 Slink(Slinky Dog)是只玩具狗 Potato当然就是Potato Head先生 Woody是个牛仔 Sarge是位绿色塑料玩...