![18.04 - 共享库已验证存在的库“没有这样的文件或目录”](https://linux22.com/image/921760/18.04%20-%20%E5%85%B1%E4%BA%AB%E5%BA%93%E5%B7%B2%E9%AA%8C%E8%AF%81%E5%AD%98%E5%9C%A8%E7%9A%84%E5%BA%93%E2%80%9C%E6%B2%A1%E6%9C%89%E8%BF%99%E6%A0%B7%E7%9A%84%E6%96%87%E4%BB%B6%E6%88%96%E7%9B%AE%E5%BD%95%E2%80%9D.png)
这带来了一些我最近下载的 roguelike 游戏。尝试运行文件夹中的可执行文件时,我得到了以下响应:
./ia: error while loading shared libraries: libmodplug.so.1: cannot open shared object file: No such file or directory
现在,当检查 Synaptic 时,我肯定有 libmodplug1 和 libmodplug1-dev。
我的猜测是,它没有在安装 Ubuntu 时保存库的同一位置寻找库?尽管游戏网站声称这是针对 Ubuntu 和 Linux 的。
我想知道是否有办法解决这个问题,比如通过符号链接一个库,这样游戏就可以去寻找它的地方,但仍然能找到它需要的东西?
或者是否有其他选择,在我的计算机上编译它并让库关联以这种方式发生?(假设可能?)
(这个是针对名为 Infra Arcana 的 rougelike 游戏。我从 Cataclysm DDA Tiles 版本中得到了同样的结果。我尝试了游戏 ADOM,并在另一个库中得到了另一个没有此文件的响应,同样,根据我的 Synaptic 搜索,我似乎已经得到了这个响应)
我的TL;DR:对于您自己没有编译或通过存储库找到的程序,是否经常找不到其库的正确位置?唯一真正的解决方案是自己编译它吗?
答案1
我推测,因为我可以通过 synaptic 在已安装的文件中看到 libmodplug,所以 libmodplug.so.1 也可用。查看后发现,该文件所在的位置有一个损坏的符号链接。
我重新安装了 libmodplug,文件就修复了。依赖该库的程序现在都可以运行了!
将此作为答案发布,而不是编辑原始帖子,以便希望教育下一个与我一样假设的人! 一定要仔细检查图书馆!