Package.keywords的小技巧

出自Gentoo Linux Wiki

跳转到: 导航, 搜索

TIP package.keywords

来自HerrZattacke的小技巧

后面的小技巧有些陈旧。 随着你的系统不断的增长,你可能想把所有被关键字屏蔽的包放在一个文件中。

例如: 你想开放foo/foo,但是这个软件的依赖性要求foo/foobar和foo/barbar必须也被开放。 这种情况下你可以按照后面的做,也可以按照这个做。

  1. mkdir -p /etc/portage/package.keywords # 是的 建立一个目录而不是文件。
  2. echo "foo/foo" > /etc/portage/package.keywords/foo # 文件名可以自由选择。
  3. 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文件。

  1. mkdir /etc/portage
  2. cd /etc/portage
  3. 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="",表示在所有的架构上都不知道能不能运行。解锁用**

了解更多看: http://www.linuxsir.org/bbs/showthread.php?t=306882

个人工具