Package.keywords的小技巧
出自Gentoo Linux Wiki
TIP package.keywords
来自HerrZattacke的小技巧
后面的小技巧有些陈旧。 随着你的系统不断的增长,你可能想把所有被关键字屏蔽的包放在一个文件中。
例如: 你想开放foo/foo,但是这个软件的依赖性要求foo/foobar和foo/barbar必须也被开放。 这种情况下你可以按照后面的做,也可以按照这个做。
- mkdir -p /etc/portage/package.keywords # 是的 建立一个目录而不是文件。
- echo "foo/foo" > /etc/portage/package.keywords/foo # 文件名可以自由选择。
- echo -e "foo/foobar \nfoo/barbar" >> /etc/portage/package.keywords/foo
这个方法也可以用于package.use和package.unmask等等。
随便说一下,除非你想在~amd64架构上安装~x86的软件,那么没必要再写~arch(如: ~x86, ~amd64)了。
来自solka的小技巧
/etc/portage/package.keywords这个文件的使用非常简单。 只需要建立/etc/portage这个目录(如果它不存在的话),然后touch package.keywords文件。
- mkdir /etc/portage
- cd /etc/portage
- touch package.keywords
接下来,你只需要把包的的名字后面带有~arch标识。 下面是我的文件
File: /etc/portage/package.keywords
## Beginning amule 2.0.0r2 dependencies >=sys-libs/zlib-1.2.1 ~x86 >=net-misc/curl-7.11.0 ~x86 >=x11-libs/wxGTK-2.4.2 ~x86 sys-devel/gdb ~x86
## Miscellaneous dev-libs/libcoyotl ~x86 dev-libs/libevocosm ~x86 dev-lang/fpc ~x86 net-dialup/gammu ~x86 sys-devel/acovea ~x86 media-fonts/corefonts ~x86 =dev-ruby/rails-1.1* ~x86
## xorg-x11 x11-base/xorg-x11 ~x86 x11-terms/xterm ~x86 sys-apps/utempter ~x86 media-video/nvidia-kernel ~x86 media-video/nvidia-glx ~x86 media-video/eselect-opengl ~x86 media-viedo/eselect ~x86 x11-wm/fluxbox ~x86 gnome-extra/gdesklets-core ~x86 media-gfx/gimp ~x86 >=x11-base/opengl-update-1.7 ~x86 ## Desklets x11-plugins/desklet-clock ~x86 x11-plugins/desklet-cornerxmms ~x86 x11-plugins/desklet-cpuinfo ~x86 x11-plugins/desklet-diskinfo ~x86 x11-plugins/desklet-goodweather ~x86 x11-plugins/desklet-ltvariations ~x86 x11-plugins/desklet-meminfo ~x86 x11-plugins/desklet-multitail ~x86 x11-plugins/desklet-networkinfo ~x86 x11-plugins/desklet-psidisplays ~x86 x11-plugins/desklet-psisensors ~x86 x11-plugins/desklet-starterbar ~x86 x11-plugins/desklet-sysinfo ~x86 x11-plugins/desklet-temperature ~x86 x11-plugins/desklet-weather ~x86 ## Others app-admin/torsmo ~x86 app-editors/vim ~x86 app-editors/vim-core ~x86 mail-client/sylpheed-claws-cvs ~x86 net-www/mozilla-firefox ~x86 sys-apps/athcool ~x86
你也可以用=号为你要开放的那个软件指定一个特定的版本 例如
=x11-base/opengl-update-1.7 ~x86
你也可以使用通配符扩大开放的范围。
=dev-ruby/rails-1.1* ~x86
这会开放1.1.0, 1.1.1等等,注意,如果通配符前有点这方法将失效,如:=dev-ruby/rails-1.1.* ~x86
你也可以用大于、小于号来指定一个版本。
>=x11-base/opengl-update-1.7 ~x86
<=x11-base/opengl-update-1.7 ~x86
你可以用~去开放一个特定的版本以及这个版本的后续补丁,例如:这会开放firefox-0.9.1以及后续的-0.9.1-r1, -0.9.1-r2等等,但-0.9.2和其他任何版本将不会被开放
~net-www/mozilla-firefox-0.9.1 ~x86
这个包:sys-kernel/linux-headers被标记为-*而不是~x86 [注意1:这个已经不再使用]
=sys-kernel/linux-headers-2.6.5 -*
还有两个可用的关键字:*表示开放一个软件包只要它在任何一个构架上进入稳定分支, ~*的意义类似不过指不稳定分支。 你在用这个的时候也许会不特定软件的版本,例如在给软件做架构测试时
看这个帖子http://forums.gentoo.org/viewtopic.php?t=171464 以了解更多内容。
很简单不是吗?
如果你感到手动编辑packages.keywords太烦。 你可以用flagedit代替 见:http://www.gentoo-wiki.org/HOWTO_Use_Portage_Correctly#TimeSavers
[注意1]上面帖子有些陈旧,被标记为-*这里已有变化
来自zhllg的解释
-*这个keyword已经不能单独用了,如果单独用,这表示软件已知在所有架构上都不能运行。这样的软件还有什么用?;) 但是它可以和其他合用,比如"-* x86"这表示,x86上已知可以运行,其他架构已知一定不可以运行。 现在的9999.ebuild应该用KEYWORDS="",表示在所有的架构上都不知道能不能运行。解锁用**
