Gentoo的哲学
--------------------------------------------------------------------------------
我之所以创建Gentoo是因为之前我没有办法找到一种我喜欢的Linux发行版。我用Linux发行版时, 其中最重要的一件事情是发行版里管理整个系统的系统工具本来是应该让用户工作更容易, 它似乎一直希望用户能够感应到这点并且能够让系统去做用户要做的工作。但是当我告诉系统我想要做些什么的时候, 似乎它更在意并且不断的传输我一个信息:“它想让我做什么!”
所以我创立了Gentoo Linux并且开始设计了一种比以往的系统管理工具更为强大的Portage工具。为了完成这个目标, 我必须让它能够满足“我想要做”的事情还要让它知道并且满足其他我想到的事情。
如果想要知道一个软件包是如何建立的,你可以看一下相对简单易懂的ebuild文件。如果你想知道如何有效的创建软件包,你可以参考“USE”变量。如果你想加一个软件包, 你可以考虑在现有的“树”下建立一个新的ebuild。如果你想用其中一个软件包, 最简单的方法就是emerge, 而软件包的依赖性可以自动解决。
很多人都青睐Portage的工作原理, 这也是GENTOO能在短时间成长起来的原因。GENTOO系统已经成为一种“from source”的发行版,但是要注意的是GENTOO的核心工作原理并非“from source(依赖来源)”。 虽然“from source(依赖来源)”是GENTOO的重要特征之一, 将来也是GENTOO必要运行的因素之一, 可是它不是唯一兼最基本的特征。而真正的最基本特征是让所有人没有拘限地做他们想做的工作。
总结一下GENTOO的“核心”特征, 我们可以想象一位用户坐在一台LINUX系统前面。“他/她想要做什么?”GENTOO的工作原理就是在没有一个指定的方法下, 让这个用户可以随心所欲的做他/她要做的事情。
在GENTOO刚刚诞生的时候, 用户说明里缺乏一个简便的可以从来源建立软件包的方法。而现在,我们已经将它实现并且运用的很好。但是现在我们仍然缺乏一个有效的非创建型软件包的支持方安, 虽然PORTAGE系统在一开始就已经支持了二位元包, 而这个正是我们在努力的工作。
有一点很重要需要说明的是我们的工具支持二位元包是因为它在Linux社区里广泛的使用和需求。如果我们的工具不支持二位元包, 那么我们就无法向外宣称我们的工具是为了让任何一个用户做他想要做的任何工作。如果我们有意的排除二位元文件的支持, 那么事实上我们是在干涉用户自己想要解决问题的方法,从而将我们自己的愿望或者我们想要用户解决问题的方法强加到用户端。同样如果我们不建立二位元包,我们也无法肯定工具可以和二位元包兼容, 也无法确定用户可以建立二位元包, 也不能够论证我们的工具可以兼容二位元包。除了原理因素外, 还有很多实际因素使我们必须要考虑建立二位元包。
GENTOO原理如果用一段文字表达就是这样。每个用户都有他/她需要做的事情。GENTOO的目标或者主旨就是设计出一系列工具和系统,从而可以让用户愉快并且有效率的做完他们的事情。我们的工具让用户用上去愉快,并且让他们知道和感慨LINUX和自由软件社区是多样化和自由软件的弹性。而这个目标只有在本身工具可以直接反应出用户自己的愿望, 然后把所有的可能性公开成一个最终的实体里(源码)。 如果工具是要用户使用一个特定的方法来工作的话, 那么它是违反而不是符合用户而工作。我们发现还是有一些情形, 当中将一些“我们”的愿望强加在用户上。这个是其中的缺点, 是违反了GENTOO的原理。
从另一方面来说, GENTOO的原理是创建一个更好的工具。当工具出色的工作的时候, 你几乎可以感觉不到它的存在, 因为它不会干涉也不会让你知道它的存在。 如果你不想和它互动, 它也不会强迫。
将来GENTOO的目标就是继续努力创造接近完美的工具。工具可以适应不同用户的需求而变的无比强悍。当你发现一个工具可以做你想要做的任何事情的时候, 你会不喜欢它吗?这种感觉不会棒吗?我们的任务就是将这种感觉带给更多的人们。