在 Gentoo 中使用两个配置文件的正确方法是什么?我是否应该简单地添加两个配置文件的绝对路径(例如 systemd 的配置文件路径)和硬化)到/etc/portage/make.profiles/parent
?例如像这样?:
/etc/portage/make.profiles/parent
../../../base
../../../default/linux
../../../arch/amd64
..
/usr/portage/profiles/hardened/linux
/usr/portage/profiles/targets/systemd
或者我是否需要创建一个自定义覆盖配置文件并以某种方式将其包含到 portage 中?
(第一次安装 Gentoo 时,我有点纠结于配置文件的问题,因为我想同时使用 systemd 和强化的配置文件。)
答案1
配置文件不能组合或合并。它们由维护者构建,以建立系统的实施。
缺少您要查找的现有配置文件意味着它不存在。考虑到hardened
配置文件更加严格和受控,该systemd
配置文件很可能不符合这些要求。
最重要的是,您应该选择最适合您的选项。如果您尝试根据您的个人喜好调整强化的配置文件,它将不再强化。
答案2
要使用两个配置文件,请创建一个本地存储库(请参阅https://wiki.gentoo.org/wiki/Overlay/Local_overlay)并在其中创建一个新的配置文件。在您的新配置文件中,只需导入 systemd 和强化配置文件即可。 /usr/portage/profiles/targets/systemd /usr/portage/profiles/hardened/linux/amd64
Gentoo 用户的示例脚本显示了所有必要的步骤:
#!/bin/bash
mkdir -p /etc/portage/repos.conf /var/lib/overlay/local/metadata /var/lib/overlay/local/profiles/hardened/linux/amd64/systemd
printf "[local]\nlocation = /var/lib/overlay/local\nmasters = gentoo\npriority = 100\nauto-sync = no\n" > /etc/portage/repos.conf/local.conf
echo "masters = gentoo" > /var/lib/overlay/local/metadata/layout.conf
echo "local" > /var/lib/overlay/local/profiles/repo_name
printf "amd64\t\thardened/linux/amd64/systemd\t\t\t\tstable\n" > /var/lib/overlay/local/profiles/profiles.desc
echo "5" > /var/lib/overlay/local/profiles/hardened/linux/amd64/systemd/eapi
printf "/usr/portage/profiles/hardened/linux/amd64\n/usr/portage/profiles/targets/systemd\n" > /var/lib/overlay/local/profiles/hardened/linux/amd64/systemd/parent
现在您可以从 中选择您的自定义配置文件eselect profile list
。