我知道如何升级Gentoo,以使用所有已安装软件的最新版本,即通过编辑ACCEPT_KEYWORDS
行/etc/portage/make.conf
中的latest关键字:
ACCEPT_KEYWORDS="~ARCH"
其中ARCH
是系统的体系结构,例如x86-64系统的amd64。这个问题是如何使用当前启用的覆盖中的所有软件的最新版本,包括那些带有空关键字字段的软件。例如,sys-devel/gcc-7.1.0-r1
目前在其ebuild中有这个关键字字段:
KEYWORDS=""
我知道它被标记为没有关键字,因为它是实验性的,可能会导致系统崩溃。我知道这一升级可能会导致系统崩溃,所以有人警告过我,但我只想知道如何升级到Gentoo实验系统( Gentoo‘latest’系统将具有~ARCH
关键字),并提供所有已安装软件的最新可用版本。
编辑:我想我已经说清楚了,在这个问题的标题中有“所有安装的软件”,但在第一条评论中,我显然没有。我想升级所有安装的软件到最新,包括那些标记为空关键字字段。
发布于 2017-06-20 00:04:35
创建以下文件(如jimmij向您建议的那样):
/etc/portage/package.accept_keywords
在所述文件中,添加类似于so的条目(为解释而添加的注释,示例文件下面的推理):
# 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
切换到您的自定义配置文件。有关如何正确执行此操作的示例,请访问Sabayon Linux和Sabayon GitHub存储库。GitHub存储库包含多个覆盖,通过它自己的包管理器,将一个普通的Gentoo安装转换为一个成熟的Linux。请参见ChromiumOS,它使用自定义的Gentoo树为ChromeBooks构建Chrome和ChromeOS。请注意,这棵树是Google内部的。
https://unix.stackexchange.com/questions/371835
复制相似问题