suse 坏了?找不到 glibc

suse 坏了?找不到 glibc

我想安装新的 postgres beta,它只能从源代码获得。我的服务器上没有安装 gcc,所以我想安装 gcc。运行 yast 后,只能通过降级大量软件包来安装 gcc 4.3.3。我点击了所有内容,点击安装,然后弹出一些安装失败。点击中止后,我无法再进入 yast。

/bin/bash: /lib64/libc.so.6: versionGLIBC_2.11'未找到(/lib64/libreadline.so.5 所需)`

zypper、rpm 也坏了。我肯定把服务器彻底搞砸了。有没有修复命令可以让一切重新运行?我正在运行 suse 11.1。

答案1

没有修复命令。发生的情况是,您的降级将版本glibc从当前版本替换为旧版本,并且系统上链接到的所有其他程序glibc(即一切除了首先降级的软件包之外,其他软件包现在无法找到链接和运行所需的符号。

您可以通过启动救援系统(OpenSUSE 11.1 Live CD,或将硬盘放在另一台计算机)来修复该系统,然后手动下载正确版本的glibcrpm,将其解压,并手动将其文件放入损坏的系统中。

事实上,您可以从几乎任何可以挂载服务器文件系统的 Linux 操作系统执行此操作。您最需要的是命令rpm,但请确保rpm救援系统中的版本较新,以便它支持 LZMA 存档格式,我认为该格式在 11.1 发布时就已部署。最安全的方法是使用 OpenSUSE / SUSE 11.1 Live CD 作为救援系统,而不是使用像 Ubuntu 8.04 或 SUSE 10 这样奇怪而老旧的系统。

一旦 glibc 再次工作,您就可以chroot进入损坏的系统并重试或回滚降级,如果遇到任何错误,只需exit从 chroot 环境中下载主机上所需的软件包,然后将它们解压到客户机中。

事实上,如果您启动 OpenSUSE 11.1 救援系统,可能更简单,只需将所有文件从救援系统复制/usr/lib64损坏的根卷,用原始版本(glibc、内核、Xorg 等)覆盖所有核心程序即可。但不要覆盖,/boot否则您将丢失 menu.lst / menu.cfg。也不要覆盖/etc,否则您将丢失 fstab,它很重要,可能没有损坏(但如果您用救援 CD 上的版本覆盖它,它会损坏)。

请注意,这并不能保证一定有效。在执行此操作之前,您可能希望zypper up在救援系统中运行(以 root 身份)。这将在将更新存储库中的所有文件更新/usr/lib64最新版本,然后再将它们放到服务器上。这提供了在您启动损坏的系统时一切正常的最佳可能性。

您的问题“suse 坏了吗?”的答案很可能是“是”,但如果您很细心并且知道自己在做什么,您仍然可以修复它。然而,让损坏系统的 rpm 数据库相信一切正常可能会很有趣。

相关内容