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支持
Add  to the FEATURES variable inside. Next, edit the MAKEOPTS variable and increase the number of parallel build jobs that the system allows. A known guideline is to fill in  where   is the number of CPUs that run distccd (including the current host) plus one, but that is just a guideline.

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

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

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

For more information about ccache, please visit its 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 变量. 请参阅 授权许可.

并行下载
当您以root身份运行Portage， 可以让Portage在下载源码包的时候放弃root特权. 这是一个小小的安全性的提高方法.

If  is set in FEATURES be sure to change the owner of all the files beneath  using the  command with root privileges:

验证的Gentoo数据库照
Administrators can opt to update the local Gentoo ebuild repository 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 repositories the system will be downloading.

Gentoo发布的OpenPGP密钥现在可作为二进制密钥环使用. 这些可以通过 包安装：

将把keyring 安装到.

确保安装了 ：

使用 验证密钥环中的密钥是否是正确的密钥

验证钥匙的指纹 those listed on the official Gentoo release engineering project page.

对每个要信任的密钥重复以下命令. （将密钥ID替换为您想要信任的所需密钥的“0x ...”. ）

如果出现GPG命令行菜单，请完全信任该键并通过输入以下命令退出程序：

系统现在设置为仅使用OpenPGP/gpg 验证的快照进行同步.

有几个命令选项可用于执行同步.

Verify distfiles
To re-verify the integrity and (potentially) re-download previously removed/corrupted distfiles for all currently installed packages, run: