tl;dr:在 Ubuntu 20.04 中,诸如 /bin 和 /sbin 之类的文件夹现在是 /usr 中相同文件夹的符号链接。为什么要进行此更改,发行说明中不应该提及它吗?
这花了几天时间,但我找到了系统设置中遇到的一些问题。作为预置安装后命令集的一部分,我将 .tar.gz 解压到新系统上,这会将一些文件放在各种文件夹中,包括 .tar.gz 和 .tar.gz /bin。我从 Ubuntu 14.04 开始就一直在这样做。使用 Ubuntu 20.04,我的系统在安装后无法启动(各种安装失败错误)。
我最终将问题缩小到这个解包步骤,并意识到我正在替换 /bin 文件夹并使许多东西无法访问。多么可爱的惊喜。修复很容易;将文件转储到 /usr/bin 中。
具体来说,以下符号链接显然是 20.04 中的新符号(以下通过多次全新安装):
$ lsb_release -ds
Ubuntu 20.04 LTS
$ ls -l / | grep -E "usr|bin|lib"
lrwxrwxrwx 1 root root 7 Apr 23 15:02 bin -> usr/bin/
lrwxrwxrwx 1 root root 7 Apr 23 15:02 lib -> usr/lib/
lrwxrwxrwx 1 root root 8 Apr 23 15:02 sbin -> usr/sbin/
drwxr-xr-x 11 …Run Code Online (Sandbox Code Playgroud) 通过阅读 systemd 文档,我遇到了TheCaseForTheUsrMerge。
关于这个话题的讨论可以追溯到 2012 年 AFAIK 左右,当时的观点是所有主要发行版都将很快纳入这一变化。
但是,在我的 Ubuntu 安装中,情况仍然不是这样。为什么没有发生这种情况有充分的理由吗?
当我which grep在 Ubuntu Focal 上运行时,我得到/usr/bin/grep. 但是,apt-file search /usr/bin/grep没有显示提供它的包裹。此外,dpkg-query -L grep只显示/bin/grep(在其他相关的可执行文件中)。那么,什么包裹递送/usr/bin/grep?