如何在 Gentoo 上一次应用多个配置文件?

RAK*_*AKK 5 gentoo emerge

我正在 Gentoo Linux Hardened 系统上安装 KDE。官方 Gentoo wiki 说推荐的方法是应用 KDE 桌面配置文件,发出emerge -NDu --with-bdeps=y @world,然后安装kdebase-meta包。但是,我使用的是 Hardened 配置文件,显然我一次只能选择一个配置文件。

到目前为止,我已经成功地在我的 Portage 配置文件(/etc/portage/make.conf、/etc/portage/package.use 和其他东西)上手动应用了 KDE 配置文件的全局和每个包的 USE 标志,但我担心从长远来看,由于 Gentoo 开发团队修改了配置文件,因此这种 hack 可能很难维护。每次我获得 Portage 更新时,我都必须重新应用desktop和desktop/kde配置文件的 USE 标志和配置,以防它们被更改。

有没有其他方法可以在 Gentoo Linux 上同时拥有多个活动的 Portage 配置文件?

eyo*_*100 2

问题

正如您所发现的,Gentoo 一次只允许一个配置文件设置。正如你可以从我的看到eselect profile list:

 [1]   default/linux/amd64/13.0
 [2]   default/linux/amd64/13.0/selinux
 [3]   default/linux/amd64/13.0/desktop
 [4]   default/linux/amd64/13.0/desktop/gnome
 [5]   default/linux/amd64/13.0/desktop/gnome/systemd
 [6]   default/linux/amd64/13.0/desktop/kde *
 [7]   default/linux/amd64/13.0/desktop/kde/systemd
 [8]   default/linux/amd64/13.0/desktop/plasma
 [9]   default/linux/amd64/13.0/desktop/plasma/systemd
 [10]  default/linux/amd64/13.0/developer
 [11]  default/linux/amd64/13.0/no-multilib
 [12]  default/linux/amd64/13.0/systemd
 [13]  default/linux/amd64/13.0/x32
 [14]  hardened/linux/amd64
 [15]  hardened/linux/amd64/selinux
 [16]  hardened/linux/amd64/no-multilib
 [17]  hardened/linux/amd64/no-multilib/selinux
 [18]  hardened/linux/amd64/x32
 [19]  hardened/linux/musl/amd64
 [20]  hardened/linux/musl/amd64/x32
 [21]  default/linux/uclibc/amd64
 [22]  hardened/linux/uclibc/amd64
Run Code Online (Sandbox Code Playgroud)

解决方案

将您的配置文件设置为强化(我的列表中的 14 个)后,我们现在需要检查 KDE 配置文件的文件:(请注意,这需要在没有文本编辑器的情况下进行一些编写):

  1. cd /usr/portage/profiles/targets/desktop/kde
  2. nano -w make.defaults
  3. nano -w parent
  4. 您现在应该看到/usr/portage/profiles/targets/desktop/.
  5. nano -w make.defaults

使用草稿纸,复制步骤 2 中的 USE Flags,然后parent在步骤 3 中打开显示..,这意味着我们向上移动一个目录。复制步骤 5 中的 USE 标志。作为最后一步,发出emerge -v app-portage/ufed && ufed。您现在可以设置在 中复制的 USE Flags /etc/portage/make.conf。您可能需要重复此过程:

  • /usr/portage/profiles/desktop/kde/package.use
  • /usr/portage/profiles/desktop/package.use

通过将这两个文件中列出的包放入/etc/portage/package.use.


在同步期间,中的文件/etc/portage不会被覆盖,并且中的使用标志/etc/portage/make.conf将模仿您试图实现的行为。有关详细信息,请参阅手册中的 Portage 文件部分。本质上,您的 Portage 覆盖/etc/portage将添加到您的强化配置文件中,因为 Portage 在读取您选择的配置文件之前使用您的配置。我知道这很痛苦,因为配置package.use文件中的 USE 标志可以在每次同步时更新,因此您需要查看每次同步后是否添加了任何标志。一般来说,配置文件不会经常更新。