MAKE.CONF
章节: Portage (5)更新: 2023 年 3 月
索引 返回主内容
名称
make.conf - Portage 的自定义设置概要
/etc/make.conf 和 /etc/portage/make.conf描述
此文件包含 Portage 使用的各种变量。该文件包含以换行符分隔的 <key>=<value> 对列表(有关示例,请参见默认文件),这些对可从 ebuild 的环境中访问。它支持简单的 shell 风格的展开形式 var="${var}"、source 关键字和变量替换,但不支持某些更高级的 BASH 功能,例如数组和特殊参数展开。有关更多详细信息,请参见简单词法分析文档:https://docs.pythonlang.cn/3/library/shlex.html。请注意,如果您源代码文件,则它们需要使用相同的 shlex 语法,以便 portage 读取它们。如果 make.conf 是一个目录,则该目录中的所有文件将按文件名按字母顺序排序并相加,就好像它是一个单独的文件一样。
Portage 将首先检查当前定义的环境变量以查找任何设置。如果未找到环境设置,Portage 然后检查 make.conf 文件。/etc/make.conf 和 /etc/portage/make.conf 都将被检查(如果存在),并且来自 /etc/portage/make.conf 的设置将覆盖来自 /etc/make.conf 的设置。如果在 make.conf 文件中未找到任何设置,Portage 检查 make.globals。如果在其中未找到任何设置,则配置文件的默认设置将从 /etc/portage/make.profile/make.defaults 获取。请注意,所有用户设置都应在环境中或 make.conf 文件中进行,这些文件旨在由用户自定义。
增量变量除外,例如 USE、CONFIG_PROTECT* 和 ACCEPT_KEYWORDS。增量变量从 make.defaults 传播到 make.globals 再到 make.conf,最后到环境设置。清除这些变量需要使用 clear-all,例如:export USE="-*"
在 make.conf 中设置的 __* 变量是本地的,不会被传播。
为了创建每个包的环境设置,请参考 package.env in portage(5)。
变量
- ACCEPT_CHOSTS = [以空格分隔的 CHOST 值列表]
- 指定可接受的 CHOST 值。支持正则表达式语法,因此有必要转义 CHOST 字符,如果它们在正则表达式中具有特殊含义。
默认为 $CHOST 的值。 - ACCEPT_KEYWORDS = [以空格分隔的 KEYWORDS 列表]
- 启用对尚未被认为“稳定”的 ebuild 的测试。x86 架构的用户会将其设置为 'tix86',而 ppc 用户会将其设置为 'tippc'。这是一个增量变量。只定义一个 tiarch。
默认为 $ARCH 的值。 - ACCEPT_LICENSE = [以空格分隔的许可证或组列表]
- 此变量用于根据许可限制屏蔽包。它可以包含许可证和组名,其中组名以符号“@”为前缀。许可证组在 license_groups 文件中定义(参见 portage(5))。除了许可证和组名之外,还支持 * 和 -* 通配符标记。有关更多信息,请参考 GLEP 23:https://gentoolinux.cn/glep/glep-0023.html。
默认为配置文件中定义的值。
示例# Only accept licenses in the FREE license group (i.e. Free Software) ACCEPT_LICENSE="-* @FREE" # As before, but exclude the "Artistic" license ACCEPT_LICENSE="-* @FREE -Artistic" # Accept any license except those in the EULA license group ACCEPT_LICENSE="* -@EULA"
- ACCEPT_PROPERTIES = [以空格分隔的属性列表]
- 此变量用于根据 PROPERTIES 限制屏蔽包。除了属性名之外,还支持 * 和 -* 通配符标记。此变量可以使用 emerge(1) 的 --accept-properties 选项临时覆盖。有关 PROPERTIES 的更多信息,请参见 ebuild(5)。
默认为 * 的值。
示例# Accept any properties ACCEPT_PROPERTIES="*" # Accept any properties except the "interactive" property ACCEPT_PROPERTIES="* -interactive"
- ACCEPT_RESTRICT = [以空格分隔的 RESTRICT 标记列表]
- 此变量用于根据 RESTRICT 标记屏蔽包。除了 RESTRICT 标记之外,还支持 * 和 -* 通配符标记。此变量可以使用 emerge(1) 的 --accept-restrict 选项临时覆盖。有关 RESTRICT 的更多信息,请参见 ebuild(5)。
默认为 * 的值。
示例# Accept any restrict tokens ACCEPT_RESTRICT="*" # Accept any tokens except "bindist" ACCEPT_RESTRICT="* -bindist"
- BINPKG_FORMAT
- 此变量设置用于 tar 二进制包的格式。可能的值是 xpak 或 gpkg。如果 BINPKG_FORMAT 设置为 xpak,则出于历史原因,任何压缩类型的包都将具有 .tbz2 的文件扩展名。如果 BINPKG_FORMAT 设置为 xpak,并且 FEATURES="binpkg-multi-instance" 设置,则包将具有 .xpak 的文件扩展名。如果 BINPKG_FORMAT 设置为 gpkg,则包将具有 .gpkg.tar 的文件扩展名。
- BINPKG_COMPRESS = "压缩"
- 此变量用于确定用于 二进制包 的压缩方式。支持的设置和压缩算法是:bzip2、gzip、lz4、lzip、lzop、xz、zstd。有关文件后缀,请参见 BINPKG_FORMAT 的说明。
默认为 "zstd"。
示例# Set it to use lz4: BINPKG_COMPRESS="lz4"
- BINPKG_COMPRESS_FLAGS = "压缩命令的参数"
- 此变量用于向 BINPKG_COMPRESS 选择的压缩命令添加额外的参数。
默认为 ""。
示例# Set it to use compression level 9: BINPKG_COMPRESS_FLAGS="-9"
- BINPKG_COMPRESS_FLAGS_[format] = "[format] 压缩命令的参数"
- 此变量用于仅为 BINPKG_COMPRESS 选择的指定 [format] 压缩命令添加额外的参数。使用 [format] 压缩时,将忽略 BINPKG_COMPRESS_FLAGS。
示例# Set only zstd to use compression level 9: BINPKG_COMPRESS_FLAGS_ZSTD="-9"
- BINPKG_GPG_SIGNING_BASE_COMMAND = "GPG 命令和参数 [PORTAGE_CONFIG]"
- 基本命令将用于所有签名操作。Portage 将在不同的操作下替换 [PORTAGE_CONFIG]。请不要添加可以独立配置的参数。
默认为 "/usr/bin/flock /run/lock/portage-binpkg-gpg.lock /usr/bin/gpg --sign --armor [PORTAGE_CONFIG]"。
- BINPKG_GPG_SIGNING_DIGEST= = "GPG 支持的摘要"
- 用于签名的摘要。
默认为 "SHA512"
- BINPKG_GPG_SIGNING_GPG_HOME = [路径]
- 签名私钥所在的 GPG 主目录。
默认为 "/root/.gnupg"
- BINPKG_GPG_SIGNING_KEY = "GPG 密钥 ID"
- 用于签名二进制包的 GPG 密钥 ID,必须存在于 BINPKG_GPG_SIGNING_GPG_HOME 中。
默认为 ""
示例:"0x40DCF18E97150795!"
- BINPKG_GPG_VERIFY_BASE_COMMAND= = "GPG 命令和参数"
- 基本命令将用于所有验证操作。Portage 将在不同的操作下替换 [PORTAGE_CONFIG] 和 [SIGNATURE]。请不要添加可以独立配置的参数。
默认为 "/usr/bin/gpg --verify --batch --no-tty --no-auto-check-trustdb --status-fd 2 [PORTAGE_CONFIG] [SIGNATURE]"
- BINPKG_GPG_VERIFY_GPG_HOME = [路径]
- 存放可信密钥的 GPG 主目录。请确保目标目录对全球可读,因为在验证期间用户将被降级为 nobody。
默认为 "/etc/portage/gnupg"
- CBUILD
- 此变量由 ebuild 脚本 传递给 配置 作为 --build=${CBUILD},仅当它被定义时。除非您知道自己在做什么,否则不要自己设置它。
- CCACHE_DIR = [路径]
- 定义 ccache 工作目录的位置。有关更多信息,请参见 ccache(1) 手册页。
只有可信用户才能获得对此位置的写入权限。
默认为 /var/tmp/ccache
- CCACHE_SIZE = "大小"
- 这控制 ccache 的空间使用限制。有关更多信息,请参见 ccache(1) 手册页中的 -M 标志。
- CFLAGS CXXFLAGS
- 使用这些变量为要编译的应用程序设置所需的优化/CPU 指令设置。这两个变量分别传递给 C 和 C++ 编译器。(CXX 用于在许多构建系统中引用 C++ 编译器。)几乎所有 ebuild 文件都将利用您的自定义设置,从而导致完全根据您的规格自定义的 Gentoo Linux。请使用合理的设置,因为如果优化过于极端,某些软件包将无法编译/运行。
有关更多信息,请参见 gcc 手册的 调用 GCC 部分
https://gcc.gnu.org/onlinedocs/ - CHOST
- 此变量由 ebuild 脚本 传递给 配置 阶段作为 --host=${CHOST}。这样,您就可以强制构建主机。
有关更多信息
https://gcc.gnu.org/onlinedocs/gcc-6.1.0/gcc/Submodel-Options.html
https://gcc.gnu.org/onlinedocs/gcc-5.4.0/gcc/Submodel-Options.html
https://gcc.gnu.org/onlinedocs/gcc-4.9.3/gcc/Submodel-Options.html - CLEAN_DELAY = 整数
- 确定运行 `emerge --unmerge` 后倒计时延迟的时间长度。
默认为 5 秒。 - COLLISION_IGNORE = [以空格分隔的 fnmatch 模式列表]
- 此变量允许用户为特定的 fnmatch(3) 模式禁用 collision-protect 和 protect-owned。为了向后兼容,没有 fnmatch 模式的目录将自动附加 /*。
默认为 "/lib/modules/* *.py[co]"。 - CONFIG_PROTECT = [以空格分隔的文件和/或目录列表]
- 此处定义的所有文件和/或目录将为它们启用“配置文件保护”。有关更多信息,请参见 emerge(1) 的 配置文件 部分。
- CONFIG_PROTECT_MASK = [以空格分隔的文件和/或目录列表]
- 此处定义的所有文件和/或目录将为它们禁用“配置文件保护”。有关更多信息,请参见 emerge(1) 的 配置文件 部分。
- CTARGET
- 此变量由 ebuild 脚本 传递给 配置 作为 --target=${CTARGET},仅当它被定义时。
- DISTDIR = [路径]
- 定义本地源文件库的位置。构建软件包后,可以安全地从该目录中删除所有文件,因为它们将按需自动获取以供给定构建使用。如果您想选择性地从该目录中修剪过时的文件,请参见 gentoolkit 软件包中的 eclean(1)。
只有可信用户才能获得对此位置的写入权限。
使用 PORTAGE_RO_DISTDIRS 变量来指定一个或多个包含 distfile 的只读目录。
默认为 /var/cache/distfiles。 - DOC_SYMLINKS_DIR
- 如果此变量包含目录,则将安装指向 HTML 文档的符号链接到其中。
- EBEEP_IGNORE
- 定义是否忽略在显示重要信息消息时发出的声音提示音。此变量默认情况下未设置。
- EMERGE_DEFAULT_OPTS
- 要追加到每次调用时emerge(1) 命令行末尾的选项。如果指定了 --ignore-default-opts,则不会将这些选项追加到命令行。
- EMERGE_LOG_DIR
- 控制 emerge.log 和 emerge-fetch.log 的位置。
默认值为 /var/log。 - EMERGE_WARNING_DELAY = 整数
- 确定运行 `emerge --unmerge` 以卸载系统软件包后倒计时延迟多长时间。
默认值为 10 秒。 - EPAUSE_IGNORE
- 定义是否忽略在显示重要信息消息时出现的短暂暂停。此变量默认情况下未设置。如果将其设置为任何值,则会忽略暂停。
- EXTRA_ECONF = [配置选项字符串]
- 包含econf 将追加到配置脚本参数的附加选项(请参阅ebuild(5))。
- FEATURES = "sandbox"
- 定义 Portage 默认采取的操作。这是一个增量变量。大多数这些设置用于开发人员使用,但一些设置也适用于非开发人员。sandbox 功能非常重要,默认情况下不应禁用。
-
- assume-digests
- 使用repoman(1) 将工作提交到 CVS 时,假设所有现有的 SRC_URI 摘要都是正确的。此功能还影响通过ebuild(1) 和emerge(1) 生成的摘要(emerge 仅在启用digest 功能时生成摘要)。即使未启用assume-digests,对 ${DISTDIR} 中不存在的文件的现有摘要也会自动假定。如果 ${DISTDIR} 中存在文件,但其大小与现有摘要不匹配,则无论是否启用assume-digests,都会重新生成摘要。ebuild(1) digest 命令有一个--force 选项,可用于强制重新生成摘要。
- binpkg-docompress
- 在创建二进制软件包之前执行docompress(可控文件压缩)。启用此选项(默认值)时,文档文件已在二进制软件包中压缩。禁用时,二进制软件包包含未压缩的文档,Portage 会在安装之前压缩它。
- binpkg-dostrip
- 在创建二进制软件包之前执行文件剥离。启用此选项(默认值)时,可执行文件已在二进制软件包中剥离。禁用时,二进制软件包包含未剥离的可执行文件,Portage 会在安装之前剥离(或拆分)它们。
为了使installsources 工作,必须启用binpkg-dostrip。
- binpkg-ignore-signature
- 这将禁用所有二进制软件包的 GPG 签名检查。启用此功能可能很危险,如果您从远程站点获取二进制软件包或使用第三方软件包。
- binpkg-logs
- 保留来自成功二进制软件包合并的日志。这仅在设置了PORTAGE_LOGDIR 时才相关。
- binpkg-multi-instance
- 启用对每个 ebuild 多个二进制软件包实例的支持。拥有多个实例对多种用途很有用,例如保留使用不同 USE 标志构建或链接到不同版本的库的构建。PKGDIR 中任何特定软件包的位置可以表示如下
${PKGDIR}/${CATEGORY}/${PN}/${PF}-${BUILD_ID}.xpak
构建 ID 从特定 ebuild 的第一个构建开始为 1,并且每次新构建增加 1。可以在 NFS 上共享可写 PKGDIR,并且锁定可以确保添加到 PKGDIR 的每个软件包都将具有唯一的构建 ID。没有必要将现有的 PKGDIR 迁移到新的布局,因为 Portage 能够与混合 PKGDIR 布局一起工作,在混合 PKGDIR 布局中,允许使用旧布局的软件包保留在原位。
新的 PKGDIR 布局与运行较旧 Portage 的 binhost 客户端向后兼容,因为文件格式相同,'Packages' 索引中的每个软件包 PATH 属性会指示它们从正确的 URI 下载文件,并且它们会自动使用 BUILD_TIME 元数据来选择最新的构建。
eclean-pkg 命令可用于从 PKGDIR 中修剪旧构建。也可以手动删除软件包,然后运行 aqemaint --fix binhost' 来更新 ${PKGDIR}/Packages 索引。此功能默认情况下已启用。
- binpkg-request-signature
- 请求二进制软件包由受信任的 GPG 签名签名。Portage 将拒绝处理任何没有有效 GPG 签名的二进制软件包。验证命令在BINPKG_GPG_VERIFY_COMMAND 变量中定义。
- binpkg-signing
- 二进制软件包将由给定的 GPG 命令签名。签名命令在BINPKG_GPG_SIGNING_COMMAND 变量中定义。
- buildpkg
- 将为合并的所有软件包创建二进制软件包。另请参阅quickpkg(1) 和emerge(1) --buildpkg 和--buildpkgonly 选项。
- buildpkg-live
- 启用此选项(默认值)时,buildpkg 将表现出为所有软件包构建二进制缓存的默认行为。禁用时,不会为 live ebuild 创建二进制软件包。
- buildsyspkg
- 仅为系统集中的软件包构建二进制软件包。
- candy
- 当emerge(1) 正在计算依赖项时,启用特殊进度指示器。
- case-insensitive-fs
- 合并和取消合并文件时使用不区分大小写的文件名比较。大多数用户不应启用此功能,因为大多数文件系统都区分大小写。您应仅在使用 Portage 将文件安装到不区分大小写的文件系统时启用此功能。
- ccache
- 启用 Portage 对 ccache 软件包的支持。如果用户环境中不存在 ccache 目录,则 Portage 将默认为 ${PORTAGE_TMPDIR}/ccache。
警告:此功能已知会导致许多编译失败。有时 ccache 会保留过时的代码对象或损坏的文件,这会导致无法合并的软件包。如果发生这种情况(如果您收到类似“无法识别的文件:文件已截断”的错误),请尝试在报告错误之前禁用 ccache 重新编译应用程序。除非您正在进行开发工作,否则不要启用 ccache。
- clean-logs
- 启用自动执行 PORTAGE_LOGDIR_CLEAN 变量指定的命令。默认 PORTAGE_LOGDIR_CLEAN 设置将删除 PORTAGE_LOGDIR 中所有至少 7 天前最后修改的文件。
- collision-protect
- 一个 QA 功能,确保软件包不会覆盖它不拥有的文件。COLLISION_IGNORE 变量可用于有选择地禁用此功能。另请参阅相关protect-owned 功能。
- compress-build-logs
- 这会导致所有构建日志在写入时压缩。日志文件名具有适合压缩类型的扩展名。目前,仅支持gzip(1) 压缩,因此启用此功能时,构建日志将具有 '.gz' 扩展名。
- compress-index
- 如果设置,则将写入 'Packages' 索引文件的压缩副本。此功能旨在用于使用某些 Web 服务器(例如但不限于使用 gzip_static 模块的 Nginx)的 Gentoo binhost,以避免冗余的动态压缩。生成的将被命名为 [aq]Packages.gz' 并且其修改时间将与 'Packages' 相匹配。
- compressdebug
- 使用 zlib 压缩拆分调试文件中的调试部分以节省空间。请参阅splitdebug 获取有关一般拆分调试信息的说明(此功能取决于该信息)。
- config-protect-if-modified
- 这会导致CONFIG_PROTECT 行为跳过自安装以来未修改的文件。此功能默认情况下已启用。
- digest
- 在运行emerge(1) 或ebuild(1) 命令时自动为软件包生成摘要。如果也启用了assume-digests 功能,则只要可用,就会重新使用现有的 SRC_URI 摘要。
- distcc
- 启用 Portage 对 distcc 软件包的支持。
- distlocks
- Portage 使用锁文件来确保竞争实例不会互相覆盖文件。它涵盖了将 distfile 保存到 ${DISTDIR} 和将 binpkg 保存到 ${PKGDIR}。
此功能默认情况下已启用,但在像 NFSv2 这样的不太智能的远程文件系统和某些奇怪配置的 Samba 服务器(oplocks 关闭,NFS 重新导出)上可能会造成困扰。
/usr/lib/portage/bin/clean_locks 存在于出现问题(通常是由于崩溃或断开连接)时帮助处理锁定问题。
- downgrade-backup
- 当软件包降级到较低版本时,调用quickpkg(1) 以在取消合并之前创建已安装版本的备份(如果不存在相同版本的二进制软件包)。另请参阅相关的unmerge-backup 功能。
- ebuild-locks
- 使用锁来确保无沙盒 ebuild 阶段不会并发执行。另请参阅parallel-install。
- fail-clean
- 在构建失败后清理临时文件。如果您的PORTAGE_TMPDIR 位于 tmpfs 上,这将特别有用。如果启用此功能,您可能还想启用PORTAGE_LOGDIR 以便保存构建日志。ebuild(1) 命令和noclean 功能都会导致自动禁用fail-clean 功能。
- fakeroot
- 当非 root 用户运行ebuild(1) 命令时,为安装和打包阶段启用 fakeroot。
- fixlafiles
- 修改 .la 文件以不包含其他 .la 文件以及其他一些修复(标志顺序、重复条目等)。
- force-mirror
- 仅从配置的镜像获取文件,忽略SRC_URI,除非ebuild(5) RESTRICT 变量中包含mirror。
- getbinpkg
- 强制合并始终尝试从PORTAGE_BINHOST 获取文件。有关更多信息,请参阅make.conf(5)。
- gpg-keepalive
- 每 5 分钟运行一次 GPG 解锁命令以避免密码过期。如果您的 GPG 在登录时自动解锁,则不需要这样做。
- icecream
- 启用 Portage 对 icecream 软件包的支持。
- installsources
- 将源代码安装到 /usr/src/debug/${CATEGORY}/${PF}(另请参阅splitdebug)。此功能仅在安装了 debugedit、CFLAGS 设置为包含调试信息(例如使用 -ggdb 标志)以及启用binpkg-dostrip 时才有效。
- ipc-sandbox
- 将 ebuild 阶段函数与主机 IPC 命名空间隔离开来。仅在 Linux 上受支持。需要内核中的 IPC 命名空间支持。
- keeptemp
- 合并过程完成后,请勿删除 ${T} 目录。
- keepwork
- 合并过程完成后,请勿删除 ${WORKDIR} 目录。由于此功能会禁用大多数在每次构建之前运行的清理阶段,因此 ${WORKDIR} 可以重复使用。由于缺乏适当的清理,此功能可能会干扰正常的 emerge 操作,因此不应将其启用超过短时间。
- lmirror
- 当 FEATURES 中启用 mirror 时,即使 mirror 也在 ebuild(5) RESTRICT 变量中,也会获取文件。对于需要在从本地镜像获取时覆盖 RESTRICT 的客户端,请勿使用 lmirror,而是使用 /etc/portage/mirrors 中描述的“本地”镜像设置,如 portage(5) 中所述。
- merge-sync
- 包合并或取消合并后,同步相关文件到磁盘,以避免在电源故障时发生数据丢失。此功能默认启用。
- metadata-transfer
- 在运行 `emerge --sync` 时自动执行元数据传输。在 portage >=2.1.5 版本中,此功能默认禁用。禁用 metadata-transfer 时,将直接使用 ${repository_location}/metadata/md5-cache/ 目录中的元数据缓存(如果可用)。
- mirror
- 获取 SRC_URI 中的所有内容,无论 USE 设置如何,但当 mirror 位于 RESTRICT 中时,不要获取任何内容。
- mount-sandbox
- 将 ebuild 阶段功能与主机挂载命名空间隔离。这使得 ebuild 可以更改挂载点而不会影响主机系统。仅在 Linux 上支持。需要内核中的挂载命名空间支持。
- multilib-strict
- 许多 Makefile 假设它们的库应该放在 /usr/lib 或 $(prefix)/lib 中。如果 /usr/lib 不是指向 /usr/lib64 的符号链接,则此假设会导致严重混乱。为了找到错误的包,我们有一个名为 multilib-strict 的 portage 功能。它将阻止 emerge 将 64 位库放入除 (/usr)/lib64 之外的任何地方。
- network-sandbox
- 将 ebuild 阶段功能与主机网络接口隔离。仅在 Linux 上支持。需要内核中的网络命名空间支持。
- network-sandbox-proxy
- 通过 SOCKSv5 代理启用逃逸网络沙箱。启用 distcc 功能也会启用代理。
如果 asyncio Python 模块可用(需要 Python 3.3,自 Python 3.4 起内置),Portage 还会在 UNIX 套接字上额外生成一个隔离的 SOCKSv5 代理。套接字地址将导出为 PORTAGE_SOCKS5_PROXY,沙箱内运行的进程可以在需要时使用它来访问主机的网络。Portage 会自动配置足够新的 distcc 来使用代理。
- news
- 启用 GLEP 42 新闻支持。参见 https://gentoolinux.cn/glep/glep-0042.html。
- noauto
- 使用 ebuild(1) 时,只运行请求的功能。此外,强制在每个阶段重新获取相应的 ebuild 和 eclasses,以考虑修改。
- noclean
- 合并过程完成后,不要删除源文件和临时文件。
- nodoc
- 不要安装文档文件 (/usr/share/doc)。
- noinfo
- 不要安装信息页面。
- noman
- 不要安装手册页。
- nostrip
- 防止剥离合并到实时文件系统的二进制文件。
- notitles
- 禁用 xterm 标题栏更新(其中包含状态信息)。
- parallel-fetch
- 在编译时在后台获取。在终端中运行 `tail -f /var/log/emerge-fetch.log` 查看并行获取进度。
- parallel-install
- 在安装包时使用更细粒度的锁,允许更大程度的并行化。为了进一步并行化,请禁用 ebuild-locks。
- pid-sandbox
- 隔离 ebuild 进程的进程空间。这使得可以干净地杀死 ebuild 生成的所有进程。仅在 Linux 上支持。需要内核中的 PID 和挂载命名空间支持。/proc 在挂载命名空间中重新挂载以考虑新的 PID 命名空间。
- pkgdir-index-trusted
- 信任 PKGDIR 索引文件有效,这意味着自上次调用 emaint --fix binhost 以来,没有手动添加或删除任何包。此功能消除了检测手动添加或删除的包所涉及的开销,在某些情况下会显著提高性能,例如当 PKGDIR 位于高延迟网络文件系统上时。
- prelink-checksums
- 如果安装了 prelink(8),则在计算合并和取消合并的校验和之前,使用它来撤销对文件的任何预链接。此功能仅在安装了 prelink(8) 并且出于某些原因(例如检查已安装文件的完整性或因为禁用了 unmerge-orphans 功能)需要准确的校验和时才有用。
请注意,从源代码中正常合并包会在预链接之前计算校验和,因此在这种情况下,此功能也不需要。仅当使用 quickpkg(1) 等工具(可能导致已经预链接的文件被合并)时,才需要在合并时撤销预链接。
- preserve-libs
- 在升级或降级期间,如果 sonames 发生变化,请保留库。仅当检测到这些库的使用者时,才会保留库。当没有剩余的使用者时,保留的库将自动删除。运行 `emerge @preserved-rebuild` 以重建所有保留库的使用者。
- protect-owned
- 这与 collision-protect 功能相同,只是如果文件未明确列在当前安装的包的内容中,则可能会被覆盖。这在具有大量遗留文件的系统上特别有用,这些遗留文件是由不支持 unmerge-orphans 功能的旧版本 portage 遗留下的。与 collision-protect 一样,COLLISION_IGNORE 变量可用于选择性地禁用此功能。建议始终启用 protect-owned 或 collision-protect,因为否则包之间的文件冲突可能导致文件在不合适的时间被覆盖或卸载。如果启用了 collision-protect,则优先于 protect-owned。
- python-trace
- 当命令的 --debug 选项启用时,将 Python 执行的详细跟踪输出到 stderr。
- qa-unresolved-soname-deps
- 当包安装具有未解决的 soname 依赖项的文件时,触发 QA 警告。
- sandbox
- 在运行 emerge(1) 和 ebuild(1) 时启用沙箱。
- sesandbox
- 启用 SELinux 沙箱。不要自己切换此 FEATURE。
- sfperms
- 代表智能文件系统权限。在将包合并到实时文件系统之前,自动搜索并设置 setuid 和 setgid 文件的权限。setuid 文件的组和其他读取位被删除,而 setgid 文件的其他读取位被删除。另请参阅下面的 suidctl。
- sign
- 使用 repoman(1) 将工作提交到 cvs 时,使用 GPG 密钥对 Manifest 进行签名。在 make.conf(5) 中阅读有关 PORTAGE_GPG_KEY 变量的信息。
- skiprocheck
- 获取文件时跳过对 DISTDIR 的写访问检查。这在 FETCHCOMMAND 和 RESUMECOMMAND 用于将获取请求转发到将 DISTDIR 作为只读 NFS 共享公开的服务器时很有用。只读 DISTDIR 与 distlocks 不兼容,因此建议还将“-distlocks”添加到 FEATURES 以避免由这种不兼容性触发的警告消息。
- split-elog
- 将 PORTAGE_ELOG_SYSTEM="save" 创建的日志存储在 PORTAGE_LOGDIR/elog 的类别子目录中,而不是直接使用 PORTAGE_LOGDIR/elog。
- split-log
- 将构建日志存储在 PORTAGE_LOGDIR/build 的类别子目录中,而不是直接使用 PORTAGE_LOGDIR。
- splitdebug
- 在剥离 ELF etdyn 和 etexec 文件之前,调试信息会存储起来,以便以后供各种调试器使用。此功能被 nostrip 禁用。您还应该考虑设置 compressdebug,这样这些文件就不会占用太多空间。有关源代码的安装,请参阅 installsources。
- strict
- 让 portage 对可能存在危险的条件(如 ebuild 的丢失或错误摘要)做出强烈的反应。
- strict-keepdir
- 让 portage 严格要求 ebuild 中的 keepdir 调用。没有明确使用 keepdir 安装的空目录将被删除。此功能对于 EAPI 8 及更高版本自动启用。
- stricter
- 让 portage 对可能与系统安全规定冲突的条件(例如 textrels、可执行堆栈)做出强烈的反应。在 make.conf(5) 中阅读有关 QA_STRICT_* 变量的信息。
- suidctl
- 在将包合并到实时文件系统之前,自动从 /etc/portage/suidctl.conf 中未列出的任何文件中剥离 setuid 位。
- test
- 在每次合并期间运行特定于包的测试,以帮助确保包已正确编译。请参阅 ebuild(1) 中的 test 和 ebuild(5) 中的 src_test()。此功能隐含“test” USE 标志(如果它是 IUSE 的成员,无论是显式还是隐式)。当禁用“test”功能时,“test” USE 标志也会自动禁用。
- test-fail-continue
- 如果 FEATURES 中启用了“test”,并且 ebuild 的测试阶段失败,则继续执行剩余的阶段,就好像没有发生失败一样。请注意,特定包的测试阶段可以通过屏蔽 package.use.mask 中的“test” USE 标志来禁用(请参阅 portage(5))。
- unknown-features-filter
- 过滤掉 FEATURES 变量中包含的任何未知值。
- unknown-features-warn
- 如果 FEATURES 包含一个或多个未知值,则发出警告。
- unmerge-backup
- 调用 quickpkg(1) 在取消合并包之前创建其备份(如果尚不存在相同版本的二进制包)。另请参阅相关的 downgrade-backup 功能。
- unmerge-logs
- 保留来自成功取消合并阶段的日志。这仅在设置了 PORTAGE_LOGDIR 时才相关。
- unmerge-orphans
- 如果文件未被相同槽位中的另一个包声明,并且未受 CONFIG_PROTECT 保护,则即使修改时间或校验和与最初安装的文件不同,也会取消合并它。
- userfetch
- 当 portage 以 root 身份运行时,在获取包源时,将权限降级到 portage:portage。
- userpriv
- 允许 portage 在没有沙箱的情况下(除非也使用了 usersandbox)降级 root 权限并以 portage:portage 身份编译包。
- usersandbox
- 在编译阶段启用沙箱,当以非 root 权限运行时(userpriv)。
- usersync
- 将权限降级到 ${repository_location} 所有者,以用于 emerge(1) --sync 操作。请注意,此功能假设 ${repository_location} 的所有子目录都与 ${repository_location} 本身拥有相同的权限。确保正确的所有权是用户的责任,否则 Portage 将不得不浪费时间在每次同步操作时验证所有权。
- warn-on-large-env
- 如果 portage 即将执行带有大型环境的子进程,则发出警告。
- webrsync-gpg
- 在使用 emerge-webrsync 时启用 GPG 验证。此功能已弃用,已被 repos.conf 中的 sync-webrsync-verify-signature 设置取代,请参阅 portage(5)。
- xattr
- 在安装文件时保留扩展属性(文件系统存储的元数据)(请参阅 attr(1))。PORTAGE_XATTR_EXCLUDE 变量可用于排除特定属性不被保留。
-
- FETCHCOMMAND
- 此变量包含用于从互联网获取包源的命令。它必须包含可执行文件的完整路径以及占位符 \${DISTDIR}、\${FILE} 和 \${URI}。该命令应编写为将获取的文件放置在 \${DISTDIR}/\${FILE} 中。另请参阅 RESUMECOMMAND。
-
- 可选 FETCHCOMMAND 占位符
-
占位符 含义 示例 \${DIGESTS} 用空格分隔的文件摘要列表 blake2b:<hexdigest> sha512:<hexdigest>
-
- FFLAGS FCFLAGS
- 使用这些变量为使用 FORTRAN 编译器编译的应用程序设置所需的优化/CPU 指令设置。FFLAGS 通常传递给 FORTRAN 77 编译器,而 FCFLAGS 传递给更现代构建系统中的任何 FORTRAN 编译器。
有关更多信息,请参见 gcc 手册的 调用 GCC 部分
https://gcc.gnu.org/onlinedocs/ - GENTOO_MIRRORS = [URIs]
- 在此处插入您用空格分隔的本地镜像列表。这些位置用于在 ebuild 脚本 中列出的位置之前下载文件。合并 'mirrorselect' 可以提供帮助。此变量中没有协议并且只以 '/' 路径分隔符开头的条目可用于指定已挂载的文件系统镜像。
- GPG_VERIFY_GROUP_DROP = [group]
- 用于在验证期间降级 root 权限的组名。
默认为 "nogroup"
- GPG_VERIFY_USER_DROP = [user]
- 用于在验证期间降级 root 权限的用户名称。
默认为 "nobody"
- http_proxy https_proxy ftp_proxy RSYNC_PROXY = [protocol://host:port]
- 这些变量由网络客户端(如 wget(1) 和 rsync(1))使用。只有在您使用代理服务器进行互联网访问时才需要它们。
- INSTALL_MASK = [用空格分隔的文件名模式(通配符)列表]
- 如果您想选择性地阻止某些文件被复制到您的文件系统树中,请使用此变量。这不会对符号链接起作用,只会对实际文件(包括目录)起作用。如果您希望过滤掉 HACKING.gz 和 TODO.gz 等文件,这很有用。
模式与要安装的每个文件(或目录)的绝对路径和裸文件名进行匹配。
INSTALL_MASK 在合并包之前处理。还支持 PKG_INSTALL_MASK 变量,其行为与 INSTALL_MASK 完全相同,只是它在创建二进制包之前处理。
***警告***
这与包含空格的文件名不兼容。如果您提供包含空格的模式,则该单个模式将被解释为两个单独的模式。示例
# Prevent individual files from being installed. INSTALL_MASK="/usr/bin/zless /usr/bin/zzxorcat" # Prevent all PDF files from being installed. INSTALL_MASK="*.pdf" # Block PDF files one level beneath /usr/share/doc. INSTALL_MASK="/usr/share/doc/*/*.pdf" # Watch out! This will be interpreted as two patterns, and # prevent both "README" AND all PDF files from being installed. INSTALL_MASK="README.md\ *.pdf"
- LDFLAGS
- 在调用链接器时传递给编译器的标志列表。请参阅 ld(1) 获取链接器标志,但不要忘记这些标志将直接传递给编译器。因此,您必须使用 '-Wl' 来转义链接器才理解的标志(请参阅 gcc(1))。
***警告***
任意设置此变量和其他 *FLAGS 变量可能会导致编译或运行时失败。当为这些标志启用非标准值时提交的错误报告可能会被关闭为无效。 - MAKEOPTS
- 如果您想使用并行 make,请使用此变量。例如,如果您有一个双处理器系统,请将此变量设置为 "-j2" 或 "-j3" 以提高许多包的构建性能。建议使用的作业值应为以下两者的最小值:可用 RAM 除以 2GB 或系统上的线程数。为了避免过载,建议使用 --load-average 选项。有关更多信息,请参阅 make(1)。另请参阅 emerge(1) 获取有关类似 --jobs 和 --load-average 选项的信息。如果未设置,则默认为使用处理器数量来限制作业(以及通过 GNUMAKEFLAGS 来限制负载平均值)。
- NO_COLOR = [任何字符串]
- 设置为任何非空字符串(例如 "1")以默认禁用颜色。
默认为未设置。 - NOCOLOR = ["true" | "false"]
- 定义默认情况下是否应禁用颜色。已弃用,建议使用 NO_COLOR。
默认为 false。 - PKGDIR = [path]
- 定义当 emerge(1) 的 --buildpkg 选项启用时,创建的 .tbz2 或 .gpkg 二进制包将存储的位置。默认情况下,给定包存储在与类别相对应的子目录中。但是,为了与 portage 旧版本使用的布局向后兼容,如果 ${PKGDIR}/All 目录存在,则所有包将存储在其中,并且指向这些包的符号链接将在类别子目录中创建。
只有可信用户才能获得对此位置的写入权限。
默认为 /var/cache/binpkgs。
- PORT_LOGDIR
- 请参阅下面的 PORTAGE_LOGDIR。已弃用。
- PORT_LOGDIR_CLEAN
- 请参阅下面的 PORTAGE_LOGDIR_CLEAN。已弃用。
- PORTAGE_BINHOST = [用空格分隔的 URI 列表]
- 这是 portage 将从中获取预构建二进制包的主机列表。列表中的每个条目都必须指定为您的系统提供 tbz2/gpkgs 的目录的完整地址(该目录必须包含一个 'Packages' 索引文件)。这仅在使用 get binary pkg 选项运行 emerge 时使用。请参阅 emerge(1) 获取更多信息。PORTAGE_BINHOST 变量已被 binrepos.conf 配置文件弃用(请参阅 portage(5))。
- PORTAGE_BINHOST_HEADER_URI = "ftp://login:[email protected]/pub/grp/i686/athlon-xp/"
- 此变量仅在充当 binhost 并为客户端构建包的系统上才有意义。它定义了位于 ${PKGDIR}/Packages 中的包索引文件的 URI 标头字段。配置了 PORTAGE_BINHOST 的客户端将能够获取索引并使用 URI 标头字段作为获取二进制包的基 URI。如果未定义 URI 标头字段,则客户端将使用其 ${PORTAGE_BINHOST} 设置作为基 URI。
- PORTAGE_BINPKG_FORMAT
- 此变量设置二进制包使用的默认格式。可能的值是 tar 和 rpm 或两者。设置此变量非常不常见,可能不是您想要的。您可能想要 BINPKG_FORMAT 代替。
- PORTAGE_BINPKG_TAR_OPTS
- 此变量包含要传递给 tar 命令以创建二进制包的选项。
- PORTAGE_BUNZIP2_COMMAND = [bunzip2 命令字符串]
- 此变量应包含适合 portage 在 bunzip2 解压缩操作时调用的命令。
- PORTAGE_BZIP2_COMMAND = [bzip2 命令字符串]
- 此变量应包含适合 portage 在 bzip2 压缩操作时调用的命令。PORTAGE_BZIP2_COMMAND 也将被调用以进行解压缩操作,并在后面附加 -d,除非设置了 PORTAGE_BUNZIP2_COMMAND 变量。
- PORTAGE_CHECKSUM_FILTER = [用空格分隔的哈希名称列表]
- 此变量可用于过滤用于验证文件完整性的哈希函数。哈希函数名称不区分大小写,支持 * 和 -* 通配符标记。
默认为 * 的值。
示例# Use all available hash functions PORTAGE_CHECKSUM_FILTER="*" # Use any function except whirlpool PORTAGE_CHECKSUM_FILTER="* -whirlpool" # Only use sha256 PORTAGE_CHECKSUM_FILTER="-* sha256"
- PORTAGE_COMPRESS = "bzip2"
- 此变量包含用于在安装阶段压缩文档的命令。
- PORTAGE_COMPRESS_EXCLUDE_SUFFIXES = "gif htm[l]? jp[e]?g pdf png"
- 此变量包含一个用空格分隔的文件后缀列表,当调用 PORTAGE_COMPRESS 命令时,将排除与这些后缀匹配的文件。支持正则表达式,匹配仅针对文件名中最后一个句点字符后的部分进行。
- PORTAGE_COMPRESS_FLAGS = "-9"
- 此变量包含 PORTAGE_COMPRESS 命令的标志。
- PORTAGE_ELOG_CLASSES
- PORTAGE_ELOG_COMMAND
- PORTAGE_ELOG_MAILFROM
- PORTAGE_ELOG_MAILSUBJECT
- PORTAGE_ELOG_MAILURI
- PORTAGE_ELOG_SYSTEM
- 请参阅 /usr/share/portage/config/make.conf.example 获取 elog 文档。
- PORTAGE_FETCH_CHECKSUM_TRY_MIRRORS = 5
- 下载的文件具有错误的校验和时尝试的镜像数量。
- PORTAGE_FETCH_RESUME_MIN_SIZE = 350K
- 调用 RESUMECOMMAND 的现有文件的最小大小。小于此大小的文件将被删除,并且 FETCHCOMMAND 将被调用以从头开始下载文件。这有助于确保诸如 html 404 页面之类的少量垃圾文件被正确丢弃。该变量应包含一个字节的整数,并且可以具有 K、M 或 G 等后缀。
- PORTAGE_GPG_DIR
- 当 sign 位于 FEATURES 中时,repoman(1) 使用的 gpg(1) 主目录。
默认为 $HOME/.gnupg。 - PORTAGE_GPG_KEY
- 当 sign 位于 FEATURES 中时,repoman(1) 用于签署清单的 gpg(1) 密钥。为了使用 git(1) 签署提交,您需要 Git >=1.7.9,并且您的提交密钥必须通过 `git config user.signingkey key_id` 配置。
- PORTAGE_GPG_SIGNING_COMMAND
- 当 sign 位于 FEATURES 中时,egencache(1) 用于签署清单的命令。
- PORTAGE_GRPNAME = [group]
- 定义在 userpriv/etc... 模式(即非 root)下执行时使用的组名。
默认为 portage。 - PORTAGE_INST_GID = [gid]
- 在通过 dobin/dosbin 安装文件时定义组 ID。在以您自己的身份运行 ebuild 时很有用。
默认为 0。 - PORTAGE_INST_UID = [uid]
- 在通过 dobin/dosbin 安装文件时定义用户 ID。在以您自己的身份运行 ebuild 时很有用。
默认为 0。 - PORTAGE_IONICE_COMMAND = [ionice 命令字符串]
- 此变量应包含一个命令,portage 可以调用该命令来调整 portage 及其子进程的 io 优先级。命令字符串应包含一个 \${PID} 占位符,该占位符将被替换为一个整数 pid。例如,"ionice -c 3 -p \${PID}" 的值将设置空闲 io 优先级。有关 ionice 的更多信息,请参阅 ionice(1)。此变量默认情况下未设置。
如果启用了 FEATURES="pid-sandbox",Portage 还将设置 autogroup-nice 值(请参阅 fBsched(7))。 - PORTAGE_SCHEDULING_POLICY = [policy name] 允许更改
- 当前的调度策略。支持的选项是 other、batch、idle、fifo、round-robin 和 deadline。如果未设置,则调度策略保持不变,默认情况下 Linux 使用 'other' 策略。希望最大程度地减少 Portage 对系统响应能力的影响的用户应将调度策略设置为 idle,这通过将 Portage 调度为极低优先级进程来显着减少对系统其他部分的干扰。有关更多信息,请参阅 sched(7)。
- PORTAGE_SCHEDULING_PRIORITY = [priority]
- 允许更改当前调度策略的优先级(1-99),仅在 PORTAGE _SCHEDULING_POLICY 设置为 'fifo' 或 'round-robin' 时才适用,对于其他策略,仅支持的优先级为 0,如果未设置,则默认为所选调度策略的最低优先级。有关调度程序的更多信息,请参阅 sched(7)。此变量默认情况下未设置。
- PORTAGE_LOG_FILTER_FILE_CMD
- 此变量指定一个命令,该命令将构建日志输出过滤到一个日志文件。为了从构建日志中过滤 ANSI 转义码,ansifilter(1) 是此变量的便捷设置。通常,PORTAGE_LOG_FILTER_FILE_CMD 应包含一个主管,如果实际过滤器命令在执行后失败,则该主管将回退到 cat。例如,ansifilter 需要一个主管,以防它在执行后由于在 gcc 升级期间解析 libstdc++ 时出现问题而失败。
示例# Use bash as a supervisor, for fallback to cat if ansifilter fails # after exec due to a problem resolving libstdc++ during a gcc upgrade. PORTAGE_LOG_FILTER_FILE_CMD="bash -c \"ansifilter; exec cat\""
- PORTAGE_LOGDIR
- 此变量定义了每个ebuild日志保存的目录。仅当此变量设置时才会创建日志。日志存储为${CATEGORY}:${PF}:YYYYMMDD-HHMMSS.log,位于指定的目录中。如果目录不存在,它将被自动创建,并将应用组权限。如果目录已经存在,portage不会修改其权限。
- PORTAGE_LOGDIR_CLEAN
- 此变量应该包含一个命令,portage会调用该命令来清理PORTAGE_LOGDIR。命令字符串应该包含一个\${PORTAGE_LOGDIR}占位符,它将被该变量的值替换。除非FEATURES中启用了clean-logs,否则此变量不会生效。
- PORTAGE_NICENESS = [数字]
- 此变量的值将被添加到emerge运行时的当前优先级级别。换句话说,这不会设置优先级级别,而只是增加它。有关优先级级别及其可接受范围的更多信息,请参阅nice(1)。
- PORTAGE_RO_DISTDIRS = [用空格分隔的目录列表]
- 当给定的文件在DISTDIR中不存在时,在此目录列表中搜索该文件。搜索顺序是从左到右。请注意,当前实现是通过在DISTDIR内部创建一个符号链接来实现的,但这在将来可能会改变。
- PORTAGE_RSYNC_EXTRA_OPTS = [rsync选项字符串]
- emerge --sync使用的额外rsync选项。
默认为无值。 - PORTAGE_RSYNC_INITIAL_TIMEOUT = 整数
- emerge --sync使用它作为初始连接到rsync服务器的超时时间。
默认为15秒。 - PORTAGE_RSYNC_OPTS = [rsync选项字符串]
- emerge --sync使用的默认rsync选项。
除非你确切地知道自己在做什么,否则不要更改它!
默认为"--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude='/distfiles' --exclude='/local' --exclude='/packages'" - PORTAGE_RSYNC_RETRIES = [数字]
- rsync在放弃之前尝试连接失败的次数。如果设置为负数,则尝试直到所有可能的地址都耗尽。
默认为-1。 - PORTAGE_SSH_OPTS = [ssh选项列表]
- 当portage执行ssh或sftp时使用的额外ssh选项。此变量支持使用嵌入的引号字符来引用参数中的空格或特殊shell字符(嵌入的引号必须在make.conf设置中进行转义)。
默认为无值。 - PORTAGE_SYNC_STALE = [数字]
- 定义了最后一次`emerge --sync`之后的多少天应该产生警告消息。值为0将禁用警告。
默认为30。 - PORTAGE_TMPDIR = [路径]
- 定义临时构建目录的位置。
只有受信任的用户才应该被授予对${PORTAGE_TMPDIR}/portage的写权限。
默认为/var/tmp。
不应将其设置为指向任何存储库位置下的任何地方。
- PORTAGE_TRUST_HELPER = [路径]
- 定义一个可执行文件,该文件初始化和维护/etc/portage/gnupg,安装用于二进制包签名的受信任密钥,并从密钥服务器刷新这些密钥。如果FEATURES中包含binpkg-request-signature,则在所有涉及远程二进制包的操作之前调用此助手。
默认为"/usr/bin/getuto"(由app-portage/getuto提供)。 - PORTAGE_USERNAME = [用户]
- 定义在userpriv/etc...模式(即非root模式)下执行时要使用的用户名。
默认为 portage。 - PORTAGE_WORKDIR_MODE = "0700"
- 此变量控制WORKDIR的权限(参见ebuild(5))。
- PORTAGE_XATTR_EXCLUDE = [用空格分隔的fnmatch模式列表]
- 此变量可用于在FEATURES中包含xattr时,排除特定属性被保留。
默认为"security.*"(安全标签是特殊的,参见bug #461868)。 - PORTDIR = [路径]
- 定义主存储库的位置。此变量已弃用,建议使用repos.conf中的设置。如果你更改了此设置,则必须相应地更新/etc/portage/make.profile符号链接。
默认为/var/db/repos/gentoo。
***警告***
存储在PORTDIR内的數據有被emerge --sync命令覆盖或删除的风险。PORTAGE_RSYNC_OPTS的默认值会保护DISTDIR和PKGDIR的默认位置,但用户需要注意的是,PORTDIR内的任何其他位置并不一定安全用于数据存储。你不应该将其他数据(如覆盖)放在你的PORTDIR中。Portage会遍历目录结构,并且可能会任意添加无效的类别作为包。 - PORTDIR_OVERLAY = "[路径] [不同的路径] [等等...]"
- 定义其他存储库的位置。此变量已弃用,建议使用repos.conf中的设置。此变量是一个用空格分隔的目录列表。
默认为无值。 - QA_STRICT_EXECSTACK = "set"
- 将其设置为使portage忽略ebuild中的任何QA_EXECSTACK覆盖设置。另见ebuild(5)。
- QA_STRICT_FLAGS_IGNORED = "set"
- 将其设置为使portage忽略ebuild中的任何QA_FLAGS_IGNORED覆盖设置。另见ebuild(5)。
- QA_STRICT_MULTILIB_PATHS = "set"
- 将其设置为使portage忽略ebuild中的任何QA_MULTILIB_PATHS覆盖设置。另见ebuild(5)。
- QA_STRICT_PRESTRIPPED = "set"
- 将其设置为使portage忽略ebuild中的任何QA_PRESTRIPPED覆盖设置。另见ebuild(5)。
- QA_STRICT_TEXTRELS = "set"
- 将其设置为使portage忽略ebuild中的任何QA_TEXTREL覆盖设置。另见ebuild(5)。
- QA_STRICT_WX_LOAD = "set"
- 将其设置为使portage忽略ebuild中的任何QA_WX_LOAD覆盖设置。另见ebuild(5)。
- ALLOW_TEST = [标记]...
- 此变量可用于选择要运行的额外测试类型,特别是覆盖RESTRICT="test"。它包含一个用空格分隔的标记列表。当前识别以下标记
-
- all
- 在所有包中运行测试,即使它们指定了RESTRICT="test"。此选项肯定会导致测试失败,它旨在由开发人员在测试特定包时使用。
- network
- 在指定了PROPERTIES="test_network"的包中运行测试。请注意,这很可能在测试套件期间导致互联网访问,这可能会导致额外成本、隐私问题和间歇性测试失败。
-
- RESUMECOMMAND
- 此变量包含用于恢复部分下载的包源的命令。它应该使用与FETCHCOMMAND相同的格式定义,并且必须包含任何可能需要的额外选项,以便继续部分下载的文件,该文件位于\${DISTDIR}/\${FILE}。
- ROOT = [路径]
- 使用ROOT指定用于合并包或ebuild的目标根文件系统。通常,你应该在环境中而不是在make.conf本身中设置此设置。它通常用于创建新的构建映像。确保你使用的是绝对路径。有关如何处理ROOT的依赖项的信息,请参阅ebuild(5)的交叉编译部分。
默认为/。 - RPMDIR = [路径]
- 定义创建的RPM包将存储的位置。
默认为/var/cache/rpm。 - SYNC = [RSYNC]
- 在此处插入你首选的rsync镜像。此rsync服务器用于在运行`emerge --sync`时同步本地ebuild存储库。
请注意,SYNC变量现在已弃用,应改用repos.conf中的sync-type和sync-uri属性。有关更多信息,请参阅portage(5)。
默认为rsync://rsync.gentoo.org/gentoo-portage
-
- 用法
- (rsync|ssh)://[用户名@]主机名[:端口]/(模块|路径)
- 示例
-
rsync://private-mirror.com/portage-module
rsync://[email protected]:873/gentoo-portage
ssh://[email protected]:22/var/db/repos/gentoo
ssh://[email protected]:22/\${HOME}/portage-storage - 注意:对于ssh://方案,基于密钥的身份验证可能很有用。
-
- UNINSTALL_IGNORE = [用空格分隔的fnmatch模式列表]
- 此变量阻止卸载与特定fnmatch(3)模式匹配的文件。为了在安装时忽略与这些文件的冲突,可以在COLLISION_IGNORE变量中添加相同的模式。
默认为"/lib/modules/*". - USE = [用空格分隔的USE项列表]
- 此变量包含控制多个包的构建行为的选项。有关更多信息,请参阅ebuild(5)。可以在/var/db/repos/gentoo/profiles/use.desc中找到可能的USE值。
- USE_ORDER = "env:pkg:conf:defaults:pkginternal:features:repo:env.d"
- 确定USE变量的增量叠加中各层的优先级。优先级从左到右递减,因此env覆盖pkg,pkg覆盖conf,等等。
***警告***
除非你是开发人员并且知道自己在做什么,否则不要修改此值。如果你更改了此值并且出现问题,我们不会帮助你修复。
-
- env
- 来自当前环境变量(USE和USE_EXPAND中列出的变量)的USE
- pkg
- 来自/etc/portage/package.use的每个包的USE(参见portage(5))
- conf
- 来自make.conf的USE
- defaults
- 来自make.defaults和配置文件中的package.use的USE(例如 /etc/portage/make.profile/package.use)(参见portage(5))
- pkginternal
- 来自ebuild(5) IUSE默认值的USE
- features
- FEATURES隐含的标志。目前包括FEATURES=test的USE=test。
- repo
- 来自repo的profiles/顶层目录中的make.defaults和package.use的USE(例如 /var/db/repos/gentoo/profiles/package.use)(参见portage(5))
- env.d
- 来自环境变量的USE,例如由/etc/env.d/中的文件定义的LINGUAS
-
报告错误
请通过https://bugs.gentoo.org/报告错误作者
Daniel Robbins <[email protected]> Nicholas Jones <[email protected]> Mike Frysinger <[email protected]> Saleem Abdulrasool <[email protected]> Arfrever Frehtes Taifersar Arahesis <[email protected]>
文件
- /etc/make.conf 和 /etc/portage/make.conf
- 包含构建过程的变量,并覆盖make.defaults中的变量。
- /usr/share/portage/config/make.globals
- 包含构建过程的默认变量,您应该编辑/etc/portage/make.conf。
- /etc/portage/color.map
- 包含自定义颜色的变量。
- /var/db/repos/gentoo/profiles/use.desc
- 包含所有全局 USE 标志的列表。
- /var/db/repos/gentoo/profiles/use.local.desc
- 包含所有本地 USE 变量的列表。
另请参阅
emerge(1), portage(5), ebuild(1), ebuild(5)- /usr/lib/portage/bin/ebuild.sh 脚本。
- /usr/lib/portage/bin 中的辅助应用程序。
-
索引
此文档由 man2html 使用手册页创建。
时间:2024 年 11 月 12 日,格林威治标准时间 03:27:02