错误的符号链接破坏了大多数 Linux 计算机功能

错误的符号链接破坏了大多数 Linux 计算机功能

我正在使用基于 Debian 的 64 位 Crunchbang。

我试图修复 libc6 的一个问题,并天真地听从了 askUbuntu 答案的建议(关联)让我运行以下命令:

sudo ln -sf /lib32/libc.so.6 /lib/x86_64-linux-gnu/libc.so.6

现在我无法运行任何终端命令或 GUI 程序。在终端上我收到大量错误。例如ls

ls:加载共享库时出错:libs.so.6:错误的 ELF 类:ELFCLASS32

sed:加载共享库时出错:libs.so.6:错误的 ELF 类:ELFCLASS32

/usr/bin/env:加载共享库时出错:libs.so.6:错误的 ELF 类:ELFCLASS32

日期:加载共享库时出错:libs.so.6:错误的 ELF 类:ELFCLASS32

sed:加载共享库时出错:libs.so.6:错误的 ELF 类:ELFCLASS32

GUI 程序根本无法启动或者给我奇怪的错误消息。

简而言之,我无法删除导致此灾难的符号链接。我该怎么做才能让我的电脑重新工作?

答案1

/lib32 文件夹只能包含 32 位库。您在 /lib32 中创建了 libc.so.6 的链接,该链接指向同一文件的 64 位版本。获取 32 位版本的 libc.so.6 并将其放在 /lib32 文件夹中。

答案2

由于你已经弄乱了你的 libc,并且通常每个有用的实用程序都依赖于它,你唯一真正方便的选择是从 Live CD / USB 启动并修复它,或者将你的硬盘驱动器放在别人的计算机上(不要从它启动)并从那里修复它。

要修复此问题,请撤消您执行的操作。

但是,您错误地选择了备份-f选项ln,并且假定没有备份任何原始文件,这意味着如果/lib/x86_64-linux-gnu/libc.so.6在执行该命令之前确实存在该文件,则该文件会被覆盖。在这种情况下,最好的办法是从其他地方获取副本,最好是兼容版本,然后在机器再次运行时强制重新安装 libc,以确保正确文件的所有正确版本都在正确的位置。

如果您一开始没有该文件,那么不必担心。

清理完所有这些之后,请考虑尝试针对问题采取风险较小的解决方案,例如取消屏蔽并安装适合您平台的正确软件包等,而不是摆弄关键库的符号链接。

相关内容