YUM 因缺少库而崩溃

YUM 因缺少库而崩溃

我尝试删除库存的 Lua 并构建自己的 Lua,因此我尝试:

yum remove lua

但是该包的依赖项太多,不允许我删除它,因此我改用 rpm:

rpm -r --nodeps --force lua

它删除了 Lua。然后我构建了自己的 Lua。但是从现在起,yum 就崩溃了,每次我运行 yum(无论是 yum install 还是 yum list,或者只是 yum),它都会给我

error:There was a problem importing one of the Python modules
required to run yum. The error leading to this problem was:

   liblua-5.1.so: cannot open shared object file: No such file or directory

Please install a package which provides this module, or
verify that the module is installed correctly.

It's possible that the above module doesn't match the
current version of Python, which is:
2.7.3 (default, Aug  9 2012, 17:23:57) 
[GCC 4.7.1 20120720 (Red Hat 4.7.1-5)]

If you cannot solve this problem yourself, please go to 
the yum faq at:
  http://yum.baseurl.org/wiki/Faq

我甚至无法重新安装 lua,因为它不允许我运行。rpm也崩溃了:

rpm: error while loading shared libraries: liblua-5.1.so: cannot open shared object file: No such file or directory

我有一个 liblua-5.1.so 版本,但我尝试将符号链接放在 /usr/lib 和 /usr/local/lib 中,它仍然出现此错误。请帮忙...我不想重新安装。

答案1

似乎yum取决于特定版本的Lua库共享对象文件 (liblua-5.1.so)。您在编译自己的库版本时使用的编译标志似乎不兼容。

因此你应该确定你的架构(uname -m)然后下载luai686或者x86_64来自 Fedora 的包并安装它以rpm恢复yum正常工作。


如果你无法使用,rpm则获取Fedora LiveCD/LiveUSB。您将chroot进入安装并尝试修复。以下是一些指导方针

确定 Fedora / 位于哪个分区

sudo -i
blkid

挂载 Fedora 分区

arch="i686"
mntDir="/mnt"
mount /dev/sdX# "$mntDir"
rpm -i lua-5.1.4-12.fc19.${arch}.rpm --prefix "$mntDir"

Chroot 进入安装

mount -t proc proc "${mntDir}/proc/"
mount -t sysfs sys "${mntDir}/sys/"
mount -o bind /dev "${mntDir}/dev/"
mount -t devpts pts "${mntDir}/dev/pts"
chroot "$mntDir" /bin/bash

调试安装

yum --help

答案2

我遇到了同样的问题。我的系统是CentOS 6。

解决方案:

  1. 找到另一个没有 yum 命令问题的 CentOS 6 系统。
  2. 查找 在哪里liblua-5.1.so
$ whereis liblua-5.1.so
$ liblua-5.1: /usr/lib64/liblua-5.1.so
  1. 复制/usr/lib64/liblua-5.1.so到有问题的系统相同路径/usr/lib64/liblua-5.1.so

相关内容