.. _gentoo_makeconf: ================== Gentoo make.conf ================== ``/etc/portage/make.conf`` 是全局范围定制Portage环境的主要配置文件,对应的 ``/etc/portage`` 目录下则存放针对单个或局部的软件编译安装配置文件。 当配置 ``make.conf`` ,则会对所有 ``emerge`` 软件包产生影响 软件包关键字 ============== .. note:: 我为了解决 :ref:`gentoo_mbp_wifi` 需要安装 ``net-wireless/broadcom-sta`` 但是系统默认mask了 ``~amd64`` ,参考 `Can't update. Package masked by amd64 keyword `_ 解决。 我想知道 ``~amd64`` 的波浪号含义,问了 :ref:`gpt` 得到以下回答 - 方法一: 接受测试阶段的 ``amd64`` 架构: .. literalinclude:: gentoo_makeconf/accept_keywords_test_amd64 :caption: 在 ``/etc/portage/make.conf`` 配置接受测试阶段的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/`` 目录下添加包含你想安装的被mask的关键字的配置文件,例如,在 :ref:`gentoo_sway_fcitx` 和 :ref:`gentoo_kde_fcitx` ,为了能够支持 :ref:`wayland` 环境下的中文输入,需要安装 :ref:`gentoo_overlays` 仓库提供的非稳定版本输入法,就需要为每个 :ref:`fcitx` 相关软件包配置 ``~amd64`` 关键字。即创建 ``/etc/portage/package.accept_keywords/fcitx5`` 内容如下: .. literalinclude:: gentoo_sway_fcitx/package.accept_keywords.fcitx5 :caption: 创建 ``/etc/portage/package.accept_keywords/fcitx5`` 包含需要安装非稳定版本的fcitx相关软件 ``mask`` 和 ``unmask`` ======================== 在遇到特定需要解决mask的时候,例如 :ref:`gentoo_sway_fcitx` 时候启用了 ``~amd64`` ,但是发现全局启用 ``unstable`` 带来系统问题(内核版本过于追新,firefox版本过高无法完成编译等),所以我手工调整关闭全局 ``unstable`` ,改为上文的针对单个应用配置 ``~amd64`` 。不过,也发现一个问题, 部分依赖已经使用的高版本被mask掉了。 :strike:`所以,再次配置部分应用unmask。` 根据提示,实际采用了上文针对单个被mask掉的应用重新添加 ``~amd64`` 配置。所以,这里案例是一个举例,并非我最后的实际配置 和上文 ``软件包关键字`` 相同,有两种方法: - 方法一: ``/etc/portage/package.unmask`` 配置文件(举例) .. literalinclude:: gentoo_makeconf/package.unmask :caption: 通过 ``/etc/portage/package.unmask`` 配置unmask案例 - 方法二: 在 ``/etc/portage/package.unmask`` 目录下独立为不同应用分别创建配置文件(举例) .. literalinclude:: gentoo_makeconf/package.unmask_files :caption: 在 ``/etc/portage/package.unmask`` 目录下创建独立配置文件 ``mask`` 掉某个软件包配置方法其实和 ``unmask`` 类似,只不过命名是 ``/etc/portage/package.mask`` (文件或目录下独立配置文件),所以不再重复说明。 参考 ===== - `gentoo linux wiki: /etc/portage/make.conf `_ - `gentoo linux wiki: Knowledge Base:Unmasking a package `_