我尝试删除库存的 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。
解决方案:
- 找到另一个没有 yum 命令问题的 CentOS 6 系统。
- 查找 在哪里
liblua-5.1.so
。
$ whereis liblua-5.1.so
$ liblua-5.1: /usr/lib64/liblua-5.1.so
- 复制
/usr/lib64/liblua-5.1.so
到有问题的系统相同路径/usr/lib64/liblua-5.1.so