我通过运行取消链接 libc.so.6
$ sudo unlink /usr/lib/libc.so.6
为了解决这个问题,我在 U 盘上启动了 ubuntu,并尝试再次链接它。问题是我不知道 libc 的版本,并且无法归档任何libc-*.so
文件。
如何找到正确的文件来解决这种情况?
答案1
Arch 似乎使用 GNU libc,这通常是大多数 Linux 发行版的默认设置。截至撰写本文时,当前版本似乎是 2.35-3。
通过列出 Arch 包内容,我看到:
$ unzstd < glibc-2.35-3-x86_64.pkg.tar.zst |tar tvf - |grep libc.so
-rw-r--r-- root/root 255 2022-03-20 22:45 usr/lib/libc.so
-rwxr-xr-x root/root 2463384 2022-03-20 22:45 usr/lib/libc.so.6
不幸的是,它看起来/usr/lib/libc.so.6
不是一个链接,而是 Arch 上的实际库,因此您必须确保 Ubuntu 已zstd
安装 ( sudo apt-get install zstd
),然后下载 Arch 的glibc-2.35-3-x86_64.pkg.tar.zst
(例如,使用上面链接的 Arch 软件包信息页面上的“从镜像下载”链接) )到 Ubuntu 可以访问它的某个地方,然后执行如下操作:
$ unzstd < glibc-2.35-3-x86_64.pkg.tar.zst |tar xvf - usr/lib/libc.so.6
$ sudo mv usr/lib/libc.so.6 <the mount location of your Arch root in Ubuntu>/usr/lib/