早在多年前,Fedora 曾合并了 /bin 和 /usr/bin。时至今日,针对 Fedora 40 提交的一项最新更改提案则提出,统一其 /usr/bin 和 /usr/sbin 位置;因为 /bin 和 /sbin 之间的划分已不再有用,且无人使用。
提案解释称:
/usr/sbin 目录成为 bin 的 symlink,这意味着 /usr/bin/foo 和 /usr/sbin/foo 等路径指向同一个地方。/bin 和 /sbin 已经是 /usr/bin 和 /usr/sbin 的 symlink,因此 /bin/foo 和 /sbin/foo 实际上也指向同一个地方。/usr/sbin 将从默认的 $PATH 中删除。
该变更提案认为这对 packagers 和 end-users 来说都是一种简化,且 Fedora 将与 Debian 等其他 Linux 发行版更加兼容。
对 Fedora 的好处:
- Packagers 不必考虑是将程序安装在
%_bindir
还是%_sbindir
。 - 用户不必考虑程序是安装在
%_bindir
还是%_sbindir
. - Fedora 与其他发行版变得更加兼容。“例如,我们有 /sbin/ip,而 Debian 有 /bin/ip;我们有 /bin/chmem 和 /bin/isosize,而 Debian 有 /sbin/chmem 和 /sbin/isosize、 我们还有 /sbin/{addpart,delpart,lnstat,nstat,partx,ping,rdma,resizeepart,ss,udevadm,update-alternatives},而 Debian 的这些都在 /bin 下,等等。”
- Fedora 与 Arch 更加兼容,Arch 于几年前进行了合并。
execvp
和相关函数遍历的目录更少。这对于速度可能并不重要,但在查看日志或strace
输出时是一个很好的简化。
升级/兼容性影响
对于用户来说,这种变化基本上是不可见的。在过渡过程中,两套路径都应正常工作,用户在$PATH
中应同时拥有这两个目录。一旦过渡完成,两套路径都将正常工作,但用户在$PATH
中只能看到/usr/bin
。
目前,该变更提案仍处于拟议状态,需得到 FESCo 的批准后才能应用在四月发布的 Fedora 40 中。