Gentoo 迈向二进制!
2023年12月29日
您可能都知道 Gentoo Linux 是您最喜欢的基于源代码的发行版。您知道我们的包管理器 Portage 多年来也一直支持二进制包,并且可以自由地混合使用基于源代码和基于二进制的包安装吗?
为了加快使用速度较慢的硬件的工作速度并提高整体便利性,我们现在还提供 **可供下载和直接安装的二进制包**!对于大多数架构,这仅限于核心系统和每周更新 - 但 **amd64 和 arm64** 除外。在那里,我们的镜像上有惊人的 **>20 GB 的软件包**,从 LibreOffice 到 KDE Plasma,从 Gnome 到 Docker。Gentoo 稳定版,每天更新。尽情享受吧!以及 阅读更多详情!
问答
如何设置我现有的 Gentoo 安装以使用这些包?
快速设置说明 最常见的情况可以在我们的 wiki 中找到。简而言之,您需要在 /etc/portage/binrepos.conf/
中创建一个配置文件。
此外,我们在 Wiki 上有一个非常简洁的 二进制包指南,其中提供了更多详细信息。
对于新的阶段/新安装,我需要做什么?
新的阶段已经包含合适的 /etc/portage/binrepos.conf/gentoobinhost.conf
。您可以从一开始就开始了,尽管您可能希望将其中的 src-uri
设置替换为指向 本地镜像 上相应目录的 URI。
$ emerge -uDNavg @world
“普通”amd64 包使用哪些编译设置、use 标记等?
位于 amd64/binpackages/17.1/x86-64
下的二进制包使用 CFLAGS="-march=x86-64 -mtune=generic -O2 -pipe"
进行编译,并且适用于任何 amd64/x86-64 机器。
可用的 useflag 设置和版本对应于 amd64/17.1/nomultilib
(例如,openrc)、amd64/17.1/desktop/plasma/systemd
和 amd64/17.1/desktop/gnome/systemd
配置文件中的稳定包。这应该提供相当广泛的覆盖范围。
“普通”arm64 包使用哪些编译设置、use 标记等?
位于 arm64/binpackages/17.0/arm64
下的二进制包使用 CFLAGS="-O2 -pipe"
进行编译,并且适用于任何 arm64/AArch64 机器。
可用的 useflag 设置和版本对应于 arm64/17.0
(例如,openrc)、arm64/17.0/desktop/plasma/systemd
和 arm64/17.0/desktop/gnome/systemd
配置文件中的稳定包。
但是,这并没有针对我的 CPU 进行优化!
运气不佳。您仍然可以像以前一样自己编译包!
其他架构和 ABI 的包使用哪些设置?
二进制包托管与阶段构建相关联。这意味着,对于每个阶段,都存在一个二进制包托管,它仅覆盖阶段内容和设置。目前没有进一步扩展覆盖范围的计划。但是,这包括编译器(gcc 或 clang)和整个构建工具链!
这些包是否经过加密签名?
是的,使用与 阶段相同的密钥。
安装前是否验证加密签名?
是的,但存在一个限制(在默认设置中)。
Portage 了解两种二进制包格式,XPAK(旧)和 GPKG(新)。只有 GPKG 支持加密签名。直到最近,XPAK 都是默认设置(并且在您的安装中可能仍然是默认设置,因为这不会在升级期间更改,而只在新安装时更改)。
新的官方 Gentoo 二进制包均采用 GPKG 格式。GPKG 包会验证其签名,如果验证失败,则会拒绝安装。为了避免与旧的二进制包不兼容,默认情况下,仍然可以安装 XPAK 包(没有签名)。
如果您希望强制要求验证签名(我们强烈建议这样做),请在 make.conf
中设置 FEATURES="binpkg-request-signature"
。然后,显然,您也只可以使用 GPKG 包。
我收到一个错误,指出无法验证签名。
尝试以 root 身份运行 Gentoo Trust Tool getuto
。
$ getuto
这应该使用 Gentoo 发布工程密钥为 Portage 设置所需的密钥环。
如果您在 make.conf
中启用了 FEATURES="binpkg-request-signature"
,则在每次二进制包下载操作之前都会自动调用 getuto
,以确保导入密钥更新和撤销。
我自己制作了二进制包,但 portage 现在拒绝使用它们!
好吧,您发现了 FEATURES="binpkg-request-signature"
的副作用。对于您自己制作的包,您需要设置一个签名密钥,并使该密钥受 /etc/portage/gnupg
中锚点的信任。
我们 Wiki 上的 二进制包指南 在这里将会有所帮助。
我的下载速度很慢。
那么请使用 本地镜像 而不是从俄勒冈大学下载。您只需编辑 /etc/portage/binrepos.conf
中的 URI 即可。是的,这是安全的,因为有加密签名。
我的 Portage 仍然想要从源代码编译。
如果您使用与配置文件默认值不同的 useflag 组合,那么您将无法使用这些包。不过,Portage 会很乐意混合和匹配并结合使用二进制包和本地编译的包。Gentoo 仍然是一个基于源代码的发行版,我们并不打算完全采用仅限二进制的安装而无需任何编译。
我可以在合并的 usr 系统上使用这些包吗?
是的。(如果出现任何问题,则这是一个错误,应 报告。)
我可以在其他(较旧或较新)的配置文件版本中使用这些包吗?
**不可以。** 这就是 src-uri
路径包含例如“17.1”的原因。**当出现新的配置文件版本时,我们也会提供新的、单独的包目录。**
是否有计划提供 ~amd64 的二进制包?
还没有。这将意味着大量的重建……如果我们有一天提供它,出于技术原因,它将位于一个单独的 URI 上。
目前的建议是尽可能坚持稳定版,并在本地添加 package.accept_keywords
中您想要使用的测试版包。这意味着您仍然可以使用大量的二进制包,并且只需自己编译其余的包即可。
我发现了一个问题,与 portage 或特定包有关!
那么请 **寻求建议**(在 IRC、论坛或邮件列表上)和/或 **提交错误报告!**
二进制包支持已经测试了一段时间,但随着越来越多的人使用它,肯定会发生一些边缘情况,并且始终欢迎高质量的错误报告!
有没有漂亮的图片?
当然!以下是每个架构的二进制包数据量(以 GB 为单位)……