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支持
将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 变量. 请参阅授权许可.

Userfetch
When Portage is run as root,  will allow Portage to drop root privileges while fetching package sources. This is a small security improvement.

Validated Gentoo repository snapshots
Administrators can opt to update the local Gentoo ebuild tree with a cryptographically validated snapshot as released by the Gentoo infrastructure. This ensures that no rogue rsync mirror is adding unwanted code or packages to the tree the system is downloading.

The Gentoo release media OpenPGP keys are now available as a binary keyring. These can be installed via the package:

This will install the keyring to the location.

Make sure that package is installed:

Use to verify that the keys in the keyring are the correct keys:

Verify the fingerprints of the key(s) against those listed on the official Gentoo release engineering project page.

Repeat the following command for each key you wish to trust. (Substitute the keyid '0x...' for the desired key you wish to trust.)

Should a GPG command-line menu appear, fully trust the key and quit the program by entering the following:

The system is now set-up to sync using only OpenPGP/gpg verified snapshots. Several command options are available to perform the sync.