Handbook:Parts/Working/Features/zh-cn

Portage特性
Portage有几个附加的特性，它们能够令您的Gentoo之旅更加愉快. 这些特性中的大多数依赖于某些能够提高性能、可靠性、安全性等的软件工具.

为了打开或者关闭某一Portage特性您需要编辑 中的 FEATURES 变量，这个变量包含不同的特性关键字，用空格分开. 在一些情况下您可能还需要额外的安装被这个特性所依赖的工具.

并不是所有Portage所支持的特性都在这里列出. 完整的概述，请查阅make.conf手册页：

查看 FEATURES 的默认设置，运行并且查找 FEATURES 变量或者用 显示它：

使用distcc
是一个分布式编译程序，可以把编译任务分配给同一网络中的不同机器，这些机器的配置不必完全相同. distcc客户端发送所有必须的信息给所有可利用的distcc服务器（运行distccd的机器）. 这样它们每一个都能为客户端编译一部分源码. 所获得的效果就是更短的编译时间.

您可以在Gentoo Distcc文档里找到更多的关于Distcc的信息（包括如何让它在Gentoo上工作）.

安装 distcc
Distcc使用一个图形化监视器来监视您的机器发送出去的编译工作. 请把  或  放进您的USE设置中.

激活Portage的distcc支持
将  添加到.中的 FEATURES 变量中. 接下来，编辑 MAKEOPTS 变量，并增加系统允许的并行构建的数量. 一个已知的方法是填写  其中  是运行distccd（包括当前主机）的CPU数量+1（或者核心数+1），但这只是一个建议.

现在运行 并输入已有的DistCC服务器. 作为一个简单例子，我们假设已有的DistCC服务器是192.168.1.102（当前主机）、192.168.1.103和192.168.1.104（两个远端服务器）：

当然，也不要忘了运行distccd系统服务：

关于ccache
是一个快速编译器缓存. 无论何时编译应用程序，它都将缓存中间结果，以便每当重新编译相同的程序时，编译时间大大减少. 第一次运行ccache时，它会比正常编译慢得多. 但是后续的重新编译应该更快. ccache只有在相同的应用程序将被重新编译多次（或相同应用程序的升级频繁发生）时才有用; 因此它通常只对软件开发人员有用.

如果您对ccache的工作机制有兴趣，请访问homepage主页.

安装 ccache
要安装ccache，只需要：

激活Portage ccache 支持
打开 并添加 到FEATURES变量. 然后添加一个新的变量 并设置它为 :

要检查ccache是否运行，只需让它提供给您它的统计数据. 因为Portage使用一个不同的ccache主目录，您需要设定 CCACHE_DIR 变量：

是Portage的默认ccache主目录；为了修改这个设置，您可以设定中的 CCACHE_DIR 参数.

不过，如果您运行 ，它使用的默认目录是. 这就是为什么当您查询（Portage）ccache统计数据的时候您需要设定 CCACHE_DIR 参数的原因.

非Portage编译中使用ccache
如果您需要在非Portage编译中使用ccache，添加 到您 PATH 参数里靠前的位置（在/usr/bin之前）. 这一点可以通过编辑在您用户主目录中的文件来实现. 使用是定义 PATH 参数的一个方式

创建预编译包
Portage 也支持安装预编译软件包. 尽管 Gentoo 本身并不提供预编译包，但 Portage 依然能够处理预编译包.

如果某个包已经被安装在您的系统上，您可以用 来创建预编译包. 也可以用带有  或   选项的 emerge 命令.

如果您希望 Portage 为您所安装的每一个软件包创建预编译软件包，那么请在 FEATURES 中添加  变量.

预编译包的更多扩展支持可以用 catalyst 得到. 关于catalyst的更多信息请参阅 Catalyst FAQ.

安装预编译包
尽管Gentoo并不提供，但是您可以自己建立一个“中心仓库”来存放预编译包. 如果您希望使用这个仓库，您需要设定 PORTAGE_BINHOST 参数使Portage能够知道它. 例如，如果预编译包在 ftp://buildhost/gentoo 上：

当您需要安装预编译包的时候，在emerge命令后的 选项旁加入   选项. 前者让emerge命令从预定的服务器上下载预编译包，后者让emerge首先试图安装预编译包，如果预编译包不存在，那么才下载并编译源码.

例如：用预编译包安装gnumeric

关于emerge的预编译包的更多信息请参阅emerge手册页:

将预构建的软件包分发给他人
如果预构建的软件要分发给其他人，请确保这样做是被允许的. 检查上游软件包的分发要求. 例如，对于在GNU GPL协议下发布的软件，源代码必须与二进制文件一起提供.

如果构建的二进制程序不可分发，则Ebuild可以在其 RESTRICT 变量中定义 限制. 有时，此限制取决于一个或多个USE标志.

默认情况下，Portage将不会屏蔽任何包，因为有限制. 这可以通过在中设置 ACCEPT_RESTRICT 变量来全局更改. 例如，要掩盖具有 限制的软件包，请将以下行添加到：

还可以通过将 ACCEPT_RESTRICT 选项用于命令，来覆盖 变量. 例如， 将临时屏蔽带有  限制的包.

还可以考虑在分发包时设置 ACCEPT_LICENSE 变量. 请参阅 授权许可.

并行下载
Portage 通常是以root 用户运行的， 可以让Portage在下载源码包的时候弃用 root 权限，并以 portage:portage 的用户/组权限运行. 这是一个小小的安全性的提高方法.

如果在 FEATURES 设置了 ，请确保在 root 权限下，使用  命令更改在  下所有文件的所有者：

验证源文件
要重新验证完整性并(可能)重新下载当前所有安装的软件包以前删除或损坏的 distfiles，请运行：