二进制文件移动到 /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
公告



© 2012 Arch Linux Chinese Community | Arch Linux 中文社区
GNU FDL 1.3
Original designed by Archlinux.org · XHTML · CSS · RSS
Proudly powered by WordPress | Server by RivenCloud
The Arch Linux name and logo are recognized trademarks by Judd Vinet & Aaron Griffin. Some rights reserved.