0

Archlinux Vs Gentoo

已有 92 阅读此文人 - - 操作系统 -

Archlinux Vs Gentoo

最近把阿里云服务器的系统换成了Gentoo,因为之前玩了几年的Archlinux 对这类滚动升级型系统比较熟悉,但是阿里云不提供Archlinux!百般纠结之后还是决定选择Gentoo!
于是,在中外各大网站博客中搜集Gentoo 的教程,感觉此篇很有见地,所以翻译出来分享给大家。
本文翻译自:http://blog.srvthe.net/archlinux-vs-gentoo/

为什么我离开

不久之前,我还在赞美Archlinux 的优点呢,特别是在和Ubuntu 进行比较的时候。 我不得不说,其中大部分的说法依然成立,就像我坚信Archlinux 是一款轻量级、可高度自定义的发行版一样。

但是,对于我来说,Gentoo 给了一个更高程度的可定制性。即使Archlinux 社区也同意这个说法,像Arch wiki的这个比较页面Arch Linux与其他发行版比较指出的,Gentoo 拥有更高的可定制性,尽管它不能很快的去部署。

以我的想法,最主要的卖点是Portage 超越 Pacman。

Portage vs Pacman

Gentoo和Archlinux 都是滚动升级系统,意味着它们都没有截止“最终版”,像我们见到过的其他发行版的版本号,如:Ubuntu、Fedora、CentOS和SuSE。在滚动升级系统中,包管理器只是简单的给你最新的稳定包。然而,Arch 处理滚动升级的方式存在根本上的缺陷。

为什么Pacman 很糟糕

使用Pacman,可能会发生当你安装一个软件的一个依赖库,然后,安装另一款软件时需要一个更新版本的相同依赖库。Pacman 将会让你去安装新的依赖库,也就是说你已经满足这个包的需求!它将会安装这个包没有任何控制,但是,它将不能运行,因为他的依赖没有满足。对我来说,这是最基本的故障。因为包管理器不能很好的处理依赖。

而且,对于这个问题,你会相当多的的去执行这个死穴 pacman –Syu,这将会几乎肯定会发生一些故障,因为它将会升级你系统上所有的包到稳定版,但是这个转换时很少平滑的。在pacman 中时没有办法简单的安装你需要的最新版本即使是手动安装!

为什么Portage 很赞

Portage 没有那么多的限制。使用portage,你可以安装你喜欢的任何版本的任何包,他们是一个ebuild 脚本在portage 中。ebuild 依然很难变成“稳定/不稳定/隐藏的”阶段,因此你可以拥有多种版本包或依赖库的选择,允许你去彻底的修复任何依赖问题(尽管我很少遇到!)。它允许你简单的修复系统而不是杀鸡用宰牛刀(Syu!)。

而且,portage 允许你去定制每个包的顶级特性!这意味着你可以按照需要动态的增加一些包的选择。你可以使用Portage 的“USE”标签完成,它是标准的打包设置选项。

Portage 可以是一个完全自定义的系统,它提供了合适的依赖解决和多版本的包支持。它让升级很简单,并且修复依赖很容易。

Portage 使用的文件称为“ebuilds”,它是非常简单,bash脚本风格去限定怎样构建及安装包,和它的依赖。Ebuilds 通常是非常容易编写的,因此它允许你去追踪任何的程序(甚至是你自己编译的包,在Portage维护树之外!)在Portage中。没有任何的其他的发行版可提供这个。

什么时间编译?

人们喜欢Arch 超过Gentoo的其中一个主要的原因是只需要编译每一个包,而不是仅仅复制一个二进制镜像。这仅仅是部分正确。在make.conf中启用“buildpkg”特性可以简单的设置你自己的二进制仓库。对于我自己,我仅仅需要编译所有的包在一台机器上,然后使用这台机器提供作为其他我的所有64为机器的一个二进制仓库。

而且,portage 已经内置支持distcc(分布式编译),意味着当你不得不编译包是,你可以分享这个工做的负担到其他的你所有拥有的电脑上。这简化了创建原始二进制包的所需要时间,然后你可以很方便的分发到其他机器上。

在Gentoo 上创建一个二进制包仓库相比其他发行版也是非常容易的,我所遇到的它不需要任何的配置在/usr/portage/packages 目录下的文件你可以简单的扔到你的http伺服器生,然后这个链接就是客户机中make.conf 设置项PORTAGE_BINHOST。除此之外,你也可以仅仅拷贝文件夹到另外一台机器上,闪电完成。

你应该更换

如果你渴望一个发行版,能够让你无限期的运行而不需要重装,你应该使用Gentoo。 我已经把我所有的机器切换到Gentoo,并且运行自己的二进制包仓库。如果你也是特别渴望能完全掌控管理包的这类用用户,你应该切换到Gentoo。

期待你一针见血的评论,Come on!