未链接的 libc.so.6

未链接的 libc.so.6

我通过运行取消链接 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/

相关内容