我知道如何升级 Gentoo 以使用所有已安装的标有测试关键字的软件的最新版本,即通过将以下行编辑ACCEPT_KEYWORDS
为/etc/portage/make.conf
:
ACCEPT_KEYWORDS="~ARCH"
其中ARCH
是系统的架构,例如 x86-64 系统的 amd64。相反,这个问题是如何使用当前启用的覆盖中的所有软件的最新版本,包括那些具有空关键字字段的软件。例如sys-devel/gcc-7.1.0-r1
目前在其 ebuild 中有这个 keywords 字段:
KEYWORDS=""
我知道它没有标记任何关键字,因为它是实验性的,可能会导致系统损坏。我知道这次升级可能会导致系统损坏,所以我收到了警告,但我只想知道如何升级到 Gentoo 实验系统(其中 Gentoo '测试' 系统会有关键字~ARCH
)以及所有已安装软件的最新可用版本。
编辑:我以为我通过在这个问题的标题中包含“所有已安装的软件”来表达自己的意思,但在第一个评论中我显然没有。我想将所有已安装的软件升级到最新版本,包括那些标有空关键字字段的软件。
答案1
创建以下文件(按照 jimmij 向您建议的那样):
/etc/portage/package.accept_keywords
在所述文件中,添加一个像这样的条目(添加注释用于解释,推理如下示例文件):
# The following values are permitted for arch:
# ** indicates a package with no keywords. These are the
# packages usually hard masked.
# ~arch, where arch is your platform type, will download testing versions.
# arch, where arch is your platform type, will download stable versions.
# This is the convention used in make.conf.
#Package Name #Arch
sys-devel/gcc **
package-cat/package arch_keyword
# It's also acceptable to version lock a package.
# Note that the arch is also needed, when a package has
# no keywords, or is in testing.
#Package Name #Arch
=sys-devel/gcc-6.3.0 **
<=sys-devel/gcc-3.4.6-r2 amd64
=package-cat/package-9999 **
由于以下事实,只有使用 jimmij 和我建议的方法才能以您要求的方式升级到前沿并不是 Gentoo 树中的每个包都有硬屏蔽包或 9999 包。因此,无法使用 来对您的系统进行全局关键字设置make.conf
。
您将获得的最接近的方法是使用app-portage/layman
添加和管理叠加层,然后将具有屏蔽版本的每个包添加到package.accept_keywords
,然后使用关键字文件创建自定义配置文件。最后,使用eselect profile
切换到您的自定义配置文件。有关如何正确执行此操作的示例,请访问萨巴永Linux,以及Sabayon GitHub 存储库。 GitHub 存储库包含多个覆盖层,可将普通的 Gentoo 安装转变为具有自己的包管理器的成熟 Linux 发行版。也可以看看Chromium操作系统,它使用定制的 Gentoo Tree 为 ChromeBook 构建 Chrome 和 ChromeOS。请注意,该树是 Google 内部的。