二进制文件移动到 /usr/bin 需要更新干预

在您下次更新期间,您将收到类似这样的错误消息

error: failed to commit transaction (conflicting files)
filesystem: /bin exists in filesystem

本次更新将所有二进制文件合并到一个统一的 /usr/bin 目录中。此步骤移除了 Arch 系统中一直没有意义的区别,并简化了开发团队的软件包维护工作。请参阅这篇文章,了解有关此更改背后原因的更多解释。

以下说明将确保安全更新

1) 修复任何在 /bin、/sbin 或 /usr/sbin 中包含文件的非官方软件包,将这些文件放入 /usr/bin。可以使用以下命令生成不在仓库中且需要修复的软件包列表

$ pacman -Qqo /bin /sbin /usr/sbin | pacman -Qm -

同时检查从非官方仓库安装的软件包,使用

$ paclist <repo> | awk ' { print $1 } ' | pacman -Ql - | grep ' /s\?bin/\| /usr/sbin/'

2) 确保 IgnorePkg 或 IgnoreGroup 中的任何软件包在 /bin、/sbin 或 /usr/sbin 中没有文件。如有必要,请修复它们。

3) 如果您在 /bin、/sbin 或 /usr/sbin 中有任何不属于任何软件包的文件,您需要移动它们。使用以下命令查找列表

$ find /bin /sbin /usr/sbin -exec pacman -Qo -- {} + >/dev/null

4) 如果使用 autofs,请确保所有分区都已挂载。它们可能不会在本次更新稍后需要时自动挂载。

5) 更新您的系统。

在执行此更新之前,您可能需要确保您已打开第二个具有 root 权限的终端,以应对不太可能发生的紧急情况,特别是如果通过 ssh 进行更新。

# pacman -Syu --ignore filesystem,bash
# pacman -S bash
# pacman -Su