Handbook:Parts/Working/USE/zh-cn

USE 标记的指导思想
你在安装gentoo（或者是其他发行版，甚至于其他特定操作系统）的时候，你要依据你工作的环境做出选择. 服务器跟工作站的组织结构不同，游戏机跟3D工作站也会不一样.

不单只是选择你想要安装的包时如此，选择某一个包需要的特性时同样如此. 如果你不需要OpenGL，为什么还要花费时间安装OpenGL并在其他包中加入对OpenGL的支持？如果你不用KDE，而且软件包没有KDE也能完美运行，为什么还要在编译这些包的时候加入KDE支持？

为了帮用户判断什么需要安装或激活，什么不需要；我们希望用户能用简单的方式设定他们自己的环境. 这能促使用户判断他真正需要的东西，并让Portage做出有用的决定的过程变得简单.

USE 标记的设定
我们来具体看看 USE 标记. 每一个标记都是代表对某特定概念的支持和依赖关系信息的关键字. 如果你设定了某个 USE 标记，Portage会明白他们需要支持所选关键字. 当然这同时也改变了这个包的依赖关系信息.

让我们看一个特殊示例：关键字. 如果你的 USE 变量里面没有这个关键字，所有具有可选KDE支持的包在编译时都 不会 编译KDE支持. 所有具有可选KDE依赖关系的包在安装时都 不会 （做为一个依赖关系而）安装KDE库. 如果你设定了kde关键字，这些包在安装时都 会 编译KDE支持，而且KDE库也 会 （作为一个依赖关系而）被安装.

When the  flag is set to enabled, then those packages will be compiled with KDE support, and the KDE libraries will be installed as dependency.

通过正确设定关键字，你会得到一个根据你的需要而定制的系统.

声明永久 USE 标记
就像前面提到的，所有 USE 标记都声明在 USE 变量里面. 为了让用户能方便地查找和选择 USE 标记，我们提供了一份默认的 USE 设定. 这些设定是我们觉得Gentoo用户通常都要用到的 USE 标记的集合. 这个默认设置在 文件──你的profile声明.

你的系统使用的profile是符号链接 所指向的目录. 每个profile叠加于某个更大的profile之上，最终的结果是这些profile的并集. 初始profile是base profile.

要查看当前正在使用的USE标记（完整的），请使用 ：

就像你看到的那样，这个变量已经包括了非常多的关键字. 不要通过修改 文件里的 USE 变量来满足你的需要：在升级Portage的时候，这个文件将会被覆盖.

要改变这个默认设置，你需要在 USE 变量里添加或移去关键字. 这是通过在里定义USE全局变量来实现的. 在这个变量里，添加你需要的额外的USE标记，或者移去你不需要的USE标记. 后者可通过在标记前面加个负号 .前缀来实现.

例如，要移除对 KDE 和 QT 的支持，并添加对 LDAP 的支持，可以在里声明USE如下：

为单个包声明 USE 标记
如果你不是想为整个系统声明 USE 标记，而是想要为一个（或者几个）程序声明USE标记，你需要编辑文件. 通常是一个文件，不过它也可以是一个充满子文件的目录；请看下面的提示和 以获得更多如何使用这个约定的信息. 下面的例子假设 是一个文件.

比如说，如果你不想全局的启用 Blu-ray 支持，你只想把它应用到 VLC 包，你可以这样做：

你当然也可以直接为某一个程序禁用 USE 标记. 比如说，禁用PHP的bzip2支持（但通过中的 USE 标记为其他包提供支持）：

声明临时 USE 标记
有时，你只想暂时改变一个USE设置. 你可以仅仅把 USE 变量声明成一个环境变量，而不必两次修改. 但是要记住，当你重新emerge或者升级这个程序的时候（不管是单独地还是作为系统升级的一部分），你的修改会被重置.

下面的例子我们将在安装 SeaMonkey 的时候临时从 USE 变量中移去 值.

优先级
当然，在什么设置优先于USE设置有一定的优先级. USE设置的优先级，按优先级排序（第一优先级最低）：
 * 1)  里面的USE默认设定
 * 2) 用户在里面的USE默认设定
 * 3) 用户在 里面的USE默认设定
 * 4) 用户作为环境变量的USE设定

运行 可以看到Portage识别的最终的USE设定. 它会列出Portage使用的所有相关变量（包括 USE 变量）.

在整个系统上应用新的 USE 标记
如果你已经修改了你的 USE 标记，而且你想用新的 USE 标记更新你的系统，可以使用的 选项：

然后运行Portage的depclean来移除已经安装到你的"旧"系统里但是在新 USE 标记中被废除的条件依赖关系.

depclean完成之后， 会针对可能是已经删除的软件包提供的共享对象动态链接的应用程序提示重新构建. 此操作完成前，为了防止破坏应用程序，Portage 将会保存必要的库. 它存储着需要在  设置的重建内容. 若要重建必要的包，请运行：

原文

这些都完成之后，你的系统就已经应用上了新的 USE 标记的设定.

查看可用 USE 标记
让我们以 seamonkey 来作例子，看看它接收什么 USE 标记. 我们可以以 和 为选项执行 来查看：

并不是做这件事的唯一工具. 事实上，我们有一个专门的包信息工具叫，它属于.

现在以为参数执行 来查看指定包的 USE 标记. 例如：gnumeric包：

满足 REQUIRED_USE
一些 ebuild 需要或禁止 USE 标记的某些组合才能正常工作. 这通过放置在 REQUIRED_USE ，用一组条件来表示. 此条件确保所有功能和依赖性都已完成，并且构建将成功并按预期执行. 如果任何一个不符合，emerge 会提醒你，并要求你解决这个问题.