Gentoo 使用经验

USE标记

在管理 USE 标记之前,我们首先要区分 全局 与 本地 的概念。
全局标记,顾名思义,就是系统软件包或绝大部分软件包都会依赖的标记。
本地标记,是针对安装的软件包不同,可自由定制的标记。

当前可用的全局USE标记列表可以在 /usr/portage/profiles/use.desc文件里找到。
当前可用的局部USE标记列表可以在 /usr/portage/profiles/use.local.desc 文件里找到。
BTW, 建议安装 gentoolkit 里, 使用里边的 euse -i 命令来查看详细信息.

添加,修改,删除全局 USE 标记, 我建议改在 /etc/make.conf
而针对本地标签, 则通过制定软件包+标签的方式, 定义在 /etc/portage/package.use 里.
这样的可以有效区分全局和本地, 使其工作在不同的作用域下.

另外, 针对单个软件包, 还可以进行临时的 增删改 USE 标记:
USE="-cups" emerge -avt samba
但不是很推荐这样用,因为当系统升级或装新版软件包时, 原来支持的标记可能被新版去掉,到时候整个软件的使用也会成问题。

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设定

顺序,从低到高只使用第一次碰到的。比如 package.use 里定义了 -ssl,那么 make.conf 里再定义 ssl 就会被忽略.
make.defaults里面的USE默认设定
用户在/etc/make.conf里面的USE设定
用户在/etc/portage/package.use里面的USE设定
作为环境变量的USE设定
以上所有配置文件,除了 make.defaults 不建议修改(emerge --sync 后,你的修改会被覆盖), 其他的建议分全局
和本地两种作用域来管理.

屏蔽的包和被block的包

当 emerge 安装A软件包时,如果提示某个B依赖包被 blocks 时,你可以在 /etc/portage/portage.keywords 里添加 >= B, 然后重装被block的软件包.
比如
[blocks B ] >=sys-apps/coreutils-6.10 (is blocking sys-apps/mktemp-1.5)
说明大于等于 6.10 版的软件包 sys-apps/coreutils, 被 sys-apps/mktemp-1.5 block掉了.

如果你仍然想安装, 则在 /etc/portage/portage.keywords 加 <sys-apps/coreutils-6.10
然后重装 sys-apps/coreutils 即可.

被mask的包, 查看这篇文章 http://www.linuxsir.org/bbs/thread308248.html

想安装软件包的最新版本(默认emerge只会安装某个软件包的稳定版本), 可以在 /etc/portage/package.keywords 里添加软件包名 + ~x86 即可, 这点与被mask的包, unmask差不多.

相关推荐