以前 Arch Linux 打包用的源码(比如PKGBUILD文件)一直没有写明协议,这潜藏着问题。明确指定协议可以澄清这种不确定性。
根据 RFC 40 我们同意把所有打包用的源码授权为非常开放的 0BSD 协议。这项变更不会限制你能用打包源码做的事情。请参阅 RFC 以了解缘由和之前的讨论。
在做出变更之前,我们想给贡献者一个提出反对声音的渠道。从2024年11月19日起,为期一周时间,贡献者们将收到一封邮件通知,其中会列出他们所做的所有贡献。
- 如果你收到邮件并且同意这次变更,那么不需要你那边进行任何操作。
- 如果你不同意,那么请回复邮件,然后我们会一起协商一个方案。
如果你之前为 Arch Linux 打包做出过贡献但没有收到邮件通知,请联系我们 package-sources-licensing@archlinux.org 。
随着 7.0.0 版本的发布,pacman 增加了以单独的低权限用户身份来下载软件包的功能。
然而,对于使用本地仓库的用户,这可能意味着下载用户无法访问相关文件。要解决此问题,可以将这些文件和文件夹分配给 alpm
组,并确保相关文件夹设置了可执行权限(+x
)。
$ chown :alpm -R /path/to/local/repo
请记得合并 .pacnew 文件以应用新的默认设置。
pacman 还引入了一个更改,以提高使用 .gitattributes
文件的 git 仓库的校验和稳定性。使用 git 源码的 PKGBUILD
可能需要一次校验和更改。
2024-09-14更新:该问题已经通过更新 gcc 到包含修复的提交的方式得到解决。Arch Linux 的官方包(链接到更新后的 gcc-libs 者)将不再受影响。
由于在 2024b 版本中,tzdata 使用了暂不受支持的一些新格式,可能会造成 libstdc++ 及其他库无法正确解析。出现的错误现象可能是部分使用 C++ 编写的软件(如 waybar)无法识别和使用除了 UTC 以外的所有时区。
为了避免这个问题,目前可以将 tzdata 包降级到(或保留在)2024a-2 版本。
相关链接:Arch tzdata的错误报告、上游 tzdata 的讨论、libstdc++ 上的更改。
在更新到 openssh-9.8p1
之后,现存的 SSH 守护进程将无法再接受新的连接(详见 https://gitlab.archlinux.org/archlinux/packaging/packages/openssh/-/issues/5 )。
如果从远程更新系统,请确保在更新后立刻使用 systemctl try-restart sshd
命令重启 sshd 服务。
我们在评估是否可能在今后 openssh-9.8p1 的打包中加入更新时自动重启 sshd 服务的机制。
最近我们举办了项目负责人选举,前一任项目负责人 Levente “anthraxx” Polyák 再次参选,而没有别人参选。
因此根据选举规则他再任一届任期。
Arch Linux 项目负责人的职责包括作出一些决策(当没法达成共识时),处理和SPI相关的财政事务,以及整体的项目任务管理。
恭喜 Levente 并希望这一届任期也会是顺利的一届!🥳
系统参数 vm.max_map_count 的默认值将从 65530
增加到 1048576
。
这一变更应该能对一些内存需求较高的应用程序帮助改善性能,减少崩溃或者启动问题,尤其是(但不仅限于)通过 Wine/Steam Proton 玩一些 Windows 游戏的情况。总体上来说,用户应该得到更平滑的开箱使用体验,而目前没有已表明的潜在顾虑,参见 arch-dev-public 邮件列表上关于本提议的讨论。
这项对 vm.max_map_count
的修改将会增加到 2024.04.07-1
版本的 filesystem 包,并且将在更新后生效。
在更新系统前,如果你已经在 sysctl.d
文件中自己设置过这个参数,请要么删除它(来切换到新的默认值),要么确保你的配置文件会比 /usr/lib/sysctl.d/10-arch.conf
文件有更高的优先级(以覆盖新的默认值)。
简单讲:立即升级系统和容器镜像!
大家可能已经听说了 [1],xz
上游发布的 5.6.0
和 5.6.1
版本的代码包(tarball)中含有添加后门的恶意代码。
Arch Linux Security Tracker 记录了该漏洞 [2]。
xz
软件包旧于 5.6.1-2
的版本(即 5.6.0-1
和 5.6.1-1
)包含该后门。
以下发布内容(release artifacts)也包含了受影响的 xz
版本:
- 安装镜像:
2024.03.01
版
- 虚拟机镜像:
20240301.218094
和 20240315.221711
版
- 容器镜像:任何 2024-02-24 到 2024-03-28 之间(包括这两个日期)构建的版本
受影响的发布内容已经从我们的镜像站上移除。
强烈建议不要使用受影响这些受影响的发布内容。请下载当前的最新版本!
升级系统
如果你的系统当前安装了 xz 5.6.0-1
或 5.6.1-1
,强烈建议你立即进行完整系统升级:
pacman -Syu
升级容器镜像
要确定否正在使用受影响的容器镜像,使用以下命令(podman 用户):
podman image history archlinux/archlinux
或者(docker 用户):
docker image history archlinux/archlinux
所有旧于 2024-03-29 且新于 2024-02-24 的 Arch Linux 容器镜像都受到了影响。
使用以下命令升级受影响的容器镜像到最新版本(podman 用户):
podman image pull archlinux/archlinux
或者(docker 用户):
docker image pull archlinux/archlinux
升级之后,请确保重新构建基于受影响版本的任何容器镜像,并检查所有运行中的容器!
sshd 认证绕过 / 代码执行问题
根据上游报告 [1]:
openssh 不直接使用 liblzma。但 debian 和其他几个发行版对 openssh 打了补丁,引入了 systemd 通知支持,而 libsystemd 确实依赖于 lzma。
Arch 并不直接将 openssh 链接到 liblzma,因此这种攻击途径是不可能的。可以通过以下命令来确认这一点:
ldd "$(command -v sshd)"
但是,出于谨慎,我们建议用户通过升级系统/容器镜像移除恶意代码 —— 因为可能有其他还没有被发现的后门利用方法。
伴随 mkinitcpio v38 发布,几个之前以 Arch 打包提供的挂钩(hook)移动到了 mkinitcpio 上游项目中。这些挂钩是: systemd, udev, encrypt, sd-encrypt, lvm2 和 mdadm_udev。
为了保证不破坏用户设置,我们在相关包中加入了一些临时的冲突,避免安装不再相互兼容的包。
以下这些包必须同时更新:
- mkinitcpio 38-3
- systemd 255.4-2
- lvm2 2.03.23-3
- mdadm 4.3-2
- cryptsetup 2.7.0-3
请注意 mkinitpcio
的 --microcode
选项和 preset 文件中的 microcode
选项将被弃置,取而代之的是新的 microcode
挂钩。这可以让你删掉引导配置中的 initrd
加载微码的行,因为它们现在已经打包进了主 initramfs 镜像文件中。
为了提高性能、可靠性以及与 systemd 的集成,我们将 dbus-broker
设为 D-Bus 的默认实现。
在可预见的未来,我们仍将支持使用 dbus-daemon
,即之前的实现。Pacman 会询问你是否要安装 dbus-broker-units
或 dbus-daemon-units
。我们建议选择默认选项。
如需了解更详细的原因,请参阅我们的 RFC 25 。
archlinuxcn 社区源的 keyring 包 archlinuxcn-keyring 由 farseerfc 的 key 签署验证,而 Arch Linux 官方 keyring 中包含了 farseerfc 的 key 。自12月初 archlinux-keyring 中删除了一个退任的 master key 导致 farseerfc 的 key 的信任数不足,由 GnuPG 的 web of trust 推算为 marginal trust,从而不再能自动信任 archlinuxcn-keyring 包的签名。
如果你在新系统中尝试安装 archlinuxcn-keyring 包时遇到如下报错:
error: archlinuxcn-keyring: Signature from "Jiachen YANG (Arch Linux Packager Signing Key) " is marginal trust
请使用以下命令在本地信任 farseerfc 的 key 。此 key 已随 archlinux-keyring 安装在系统中,只是缺乏信任:
sudo pacman-key --lsign-key "farseerfc@archlinux.org"
之后继续安装 archlinuxcn-keyring :
sudo pacman -S archlinuxcn-keyring