如何在dev-ruby /关键字“〜amd64”中标记所有包在portage中的包?

我想使用dev-ruby/*包的~amd64testing分支。

官方的Gentoo文档说,你应该在/etc/portage/package.keywords添加所需的软件包(如果需要的话)。 看看这些例子:

 # This will accept any ~arch version: dev-ruby/png # This will accept only this specific version: =dev-ruby/png-1.2.0 # This will accept all versions that start with "1.2.0" =dev-ruby/png-1.2.0* # This will accept any version below 1.3 <dev-ruby/png-1.3 

因此,你应该得到你想要安装的软件包列表,并将它们添加到这个文件中。 没有办法从一个类别获取所有的包,你必须明确地列出每个包。

使用gem来pipe理ruby相关的软件包可能是一个更好的解决scheme。

您可以使用eix将所有包列入单个类别。

 emerge eix 

然后运行eix-update来更新eix数据库。

一旦eix是最新的,这里是一个oneliner会做你在问什么:

 eix dev-ruby/ | grep "dev-ruby/" --after 1 | grep "~" --before 1 | awk -F"*" '/dev-ruby/{print $2" ~amd64"}' | sed -e 's/^[ \t]*//g' | tee -a /etc/portage/package.keywords 

为了确保它能够join正确的东西,你可以在使用上面的代码之前使用这个代码作为testing:

 eix dev-ruby/ | grep "dev-ruby/" --after 1 | grep "~" --before 1 | awk -F"*" '/dev-ruby/{print $2" ~amd64"}' | sed -e 's/^[ \t]*//g' | tee -a /dev/null