Gentoo make.conf

/etc/portage/make.conf 是全局范围定制Portage环境的主要配置文件,对应的 /etc/portage 目录下则存放针对单个或局部的软件编译安装配置文件。

当配置 make.conf ,则会对所有 emerge 软件包产生影响

软件包关键字

备注

我为了解决 Gentoo Linux在MacBook Pro配置Wifi 需要安装 net-wireless/broadcom-sta 但是系统默认mask了 ~amd64 ,参考 Can’t update. Package masked by amd64 keyword 解决。

我想知道 ~amd64 的波浪号含义,问了 GPT 得到以下回答

  • 方法一: 接受测试阶段的 amd64 架构:

/etc/portage/make.conf 配置接受测试阶段的AMD64架构软件包
ACCEPT_KEYWORDS="~amd64"

Gentoo的 /etc/portage/make.conf 配置文件中 ACCEPT_KEYWORDS="~amd64" 是指定了系统所使用的软件包关键字:

软件包关键字(Keywords)用于指定软件包的可用性和稳定性级别,软件包的关键字通常有以下几种情况:

  • 空关键字(empty keyword):表示软件包是稳定版本,已经经过广泛测试并被认为是可靠和稳定的

  • 给定关键字(given keyword):表示软件包是非稳定版本,需要进一步测试或者尚未被广泛使用

  • 波浪号关键字(tilde keyword):表示软件包是测试版本,处于快速迭代和开发阶段

ACCEPT_KEYWORDS="~amd64" 指定了系统使用的软件包关键字为波浪号关键字(tilde keyword),并且目标架构为 amd64。这意味着系统将接受安装和更新处于测试阶段的软件包,并且适用于 amd64 架构的处理器。

创建 /etc/portage/package.accept_keywords/fcitx5 包含需要安装非稳定版本的fcitx相关软件
#直接使用 /etc/portage/package.accept_keywords
#echo "net-wireless/broadcom-sta" >> /etc/portage/package.accept_keywords

#或者 /etc/portage/package.accept_keywords 目录下分别配置针对不同应用的配置
#这里举例为fcitx5配置 /etc/portage/package.accept_keywords/fcitx5
#注意 zh-gentoo 提供的fcitx5软件包命名是 fcitx
app-i18n/fcitx ~amd64
x11-libs/xcb-imdkit ~amd64
# 去除安装fcitx-chinese-addons,仅安装fcitx-rime来支持拼音输入引擎`
#app-i18n/fcitx-chinese-addons ~amd64
app-i18n/fcitx-rime ~amd64
app-i18n/rime-data ~amd64
app-i18n/rime-octagram-data ~amd64

# librime-octagram-20230125-r2 需要 sys-libs/libunwind 1.8.0
sys-libs/libunwind ~amd64
app-i18n/librime-octagram ~amd64
app-i18n/libime ~amd64

#在 sway 环境不再安装qt支持,采用纯gtk环境(如果要支持KDE,则启用qt支持)
#app-i18n/fcitx-qt ~amd64
#app-i18n/fcitx-configtool ~amd64
#dev-qt/qtcore ~amd64
app-i18n/fcitx-gtk ~amd64

# dev-libs/boost-1.84.0 required by fcitx-chinese-addons (~amd64)
# 不过可以不安装fcitx-chinese-addons就需要配置下面这行
#dev-libs/boost ~amd64

maskunmask

在遇到特定需要解决mask的时候,例如 Gentoo Linux Sway fcitx中文输入 时候启用了 ~amd64 ,但是发现全局启用 unstable 带来系统问题(内核版本过于追新,firefox版本过高无法完成编译等),所以我手工调整关闭全局 unstable ,改为上文的针对单个应用配置 ~amd64 。不过,也发现一个问题, 部分依赖已经使用的高版本被mask掉了。 所以,再次配置部分应用unmask。 根据提示,实际采用了上文针对单个被mask掉的应用重新添加 ~amd64 配置。所以,这里案例是一个举例,并非我最后的实际配置

和上文 软件包关键字 相同,有两种方法:

  • 方法一: /etc/portage/package.unmask 配置文件(举例)

通过 /etc/portage/package.unmask 配置unmask案例
echo ">=dev-build/autoconf-wrapper-20231224" >> /etc/portage/package.unmask
  • 方法二: 在 /etc/portage/package.unmask 目录下独立为不同应用分别创建配置文件(举例)

/etc/portage/package.unmask 目录下创建独立配置文件
mkdir /etc/portage/package.unmask
echo ">=dev-build/autoconf-wrapper-20231224" >> /etc/portage/package.unmask/autoconf

mask 掉某个软件包配置方法其实和 unmask 类似,只不过命名是 /etc/portage/package.mask (文件或目录下独立配置文件),所以不再重复说明。

参考