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

爱百信美妆

爱百信美妆

2016-01-29 18:00

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

如果你现在想安装一套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要求的依赖关系。只能推倒,重建系统。

(本文来源于图老师网站,更多请访问https://m.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 强制安装。这是最下策,也是最麻烦的方法。(因为下次遇到

展开更多 50%)
分享

猜你喜欢

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

Linux Linux命令 Linux安装 Linux编程 Linux桌面 Linux软件 Linux内核 Linux管理
Debian和Gentoo包管理机制比较及延伸

linux包管理和系统更新

服务器
linux包管理和系统更新

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

深入SQL SERVER 2000的内存管理机制(三)

SQLServer
深入SQL SERVER 2000的内存管理机制(三)

SQL Server数据库安全管理机制详解

SQLServer
SQL Server数据库安全管理机制详解

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

C++中实现Java的存储管理机制

编程语言 网络编程
C++中实现Java的存储管理机制

深入SQL SERVER 2000的内存管理机制(二)

SQLServer
深入SQL SERVER 2000的内存管理机制(二)

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

Linux系统命令行Find工具使用小技巧

Linux系统命令行Find工具使用小技巧

利用EXCEL进行学生成绩管理

利用EXCEL进行学生成绩管理
下拉加载更多内容 ↓