前提:
在管理你的 USE 标记前,我们先来了解一下,在哪些地方可以定义 USE 标记。
所有可以配置 USE 标记的地方:
/usr/portage/profile/base/make.defaults
/usr/portage/profile/default-linux/make.defaults
/usr/portage/profile/default-linux/x86/make.defaults
/usr/portage/profile/default-linux/x86/2007.0/make.defaults
/etc/make.conf
/etc/portage/package.use
作为环境变量设定的USE
了解了标记所在的位置,那么看一下这些 标记 的读取顺序把?
USE 标记的顺序是从低到高读取的,且读取中只使用第一次碰到的。比如 package.use 里定义了 -ssl,那么 make.conf 里再定义 ssl 就会被忽略。
make.defaults里面的USE默认设定,用户在/etc/make.conf里面的USE设定,用户在/etc/portage/package.use里面的USE设定,作为环境变量的USE设定。
以上所有配置文件,除了 make.defaults 不建议修改(emerge --sync 后,你的修改会被覆盖), 其他均可以自由添加,修改。
管理:
管理之前,确保你安装了 Gentoolkit 工具,它能为你节约很多时间。
在管理 USE 标记之前,我们首先要区分 全局 与 本地 的概念。全局标记,顾名思义,就是系统软件包或绝大部分软件包都会依赖的标记。本地标记,是针对安装的软件包不同,可自由定制的标记。
但当一个本地标记放置在默认中,也会起到全局的作用。因为每一次安装软件包,都有可能激活这个本地标记。
在 Gentoo portage 中, 官方提供了很多的默认标记,他们分布在多个 make.defaults 中(看前提的文件列表)。这些标记就包括全局和本地的,从这点可以看出,官方虽然遵循了 COC 原则 (convention over configuration)。但对于一个,喜欢自己定制的用户来说,本地标记设为默认就显得有点强求了。
在这里,建议,直接屏蔽掉所有默认的本地标记,只保留全局。然后,在安装软件包时,再添加需要的功能。(通过往 package.use 里添加 包名 和 这个包要依赖的标记)
以上方式,有些人会问,为什么要先屏蔽,然后安装时,再添加。而不是先默认添加,然后安装时发现没必要,再删除。原因是,需要删除比需要添加的多(比如 ipv6 这种,就是所有包都应该删除的,其实就遵循一个理念:本地与全局分离,情愿本地很多包要用,多定义几次)。
屏蔽本地默认标记步骤:
1, euse -a 可以看到所有已激活的标记。
2, 用 euse -i xx 来查看哪些是本地的。
3, 将这些标记全部 取消掉 euse -D xx 。
当清理完标记后,需要进行一次系统更新 emerge -avtuDN world。通过系统更新,你可以看到刚才对标记修改所带来的影响。(大部分使用到刚才删除标记的软件包都需要重新编译,你想要的添加到本地,不想要的编译后就没了)
现在以及将来,你就可以为每个软件包,手动激活自己喜欢的功能了。