如何解决 Trusty (14.04) 中缺少 libmng.so.1 的问题 软件包不再可用

如何解决 Trusty (14.04) 中缺少 libmng.so.1 的问题 软件包不再可用

我想跑SoulseekQT。但不幸的是,依赖项之一是 libmng1,它不再包含在 Trusty 中。sudo apt-get install libmng.so.1或者 Trusty (14.04) 中的 libmng1 或 libmng1:i386 不再可用。您知道如何解决此冲突吗?
我的意思是,真的确定排除 libmng1 吗?我可以用 libmng2 代替吗?如果不行,我能以某种方式为 Trusty 重建 libmng1 吗?还是我必须降级回 Saucy (13.10)?

答案1

当库的主版本号发生变化时,通常意味着该库不再与其提供的先前接口兼容。Ubuntu 的先前版本有 libmng1,但现在提供了 libmng2,并且 14.04 中的所有 Ubuntu 软件包都已重建以使用 libmng.so.2。在这种情况下,第三方应用程序可能需要重建才能与 14.04 中更新的库一起使用。在此之前,您可以尝试从具有 libmng1 的最新 Ubuntu 版本安装库软件包。

要安装 libmng1 和 libmng2,首先从以下位置找到受支持的 Ubuntu 版本中的最新版本:http://packages.ubuntu.com/libmng1。然后下载并安装适合您的体系结构的包。例如:

wget http://archive.ubuntu.com/ubuntu/pool/main/libm/libmng/libmng1_1.0.10-3build1_i386.deb
sudo dpkg -i libmng1_1.0.10-3build1_i386.deb

请注意,由于该软件包不在 Ubuntu 14.04 存储库中,因此您将无法获得该软件包的更新。

当然,更好的解决方案是让应用程序开发人员提供可与已发布的 Ubuntu 14.04 兼容的 SoulseekQt 新版本。

答案2

我尝试了几种解决方案,但对我有用的是将其链接到 Ubuntu 中现有的库。首先找到该库:

$ locate libmng.so.2
/usr/lib/x86_64-linux-gnu/libmng.so.2
/usr/lib/x86_64-linux-gnu/libmng.so.2.0.2

然后创建一个符号链接至此:

$ ln -s /usr/lib/x86_64-linux-gnu/libmng.so.2 /usr/lib/x86_64-linux-gnu/libmng.so.1

祝你好运!

答案3

从源代码安装

sudo apt-get install liblcms1-dev
wget http://prdownloads.sourceforge.net/libmng/lm010010.zip
unzip lm010010.zip
cd libmng
# MANUAL: edit `makefiles/makefile.linux` to add `-fPIC` to `CFLAGS` 
make -f makefiles/makefile.linux
sudo make -f makefiles/makefile.linux install
# MANUAL: add /usr/local/lib to your search path: http://unix.stackexchange.com/questions/67781/use-shared-libraries-in-usr-local-lib

在 Ubuntu 14.04 上测试。

答案4

很好!我也遇到了这个问题。但是

sudo ln -s /usr/lib/x86_64-linux-gnu/libmng.so.2 /usr/lib/x86_64-linux-gnu/libmng.so.1

对我来说是一个解决方案,谢谢 saber。我认为 ubuntu 16.04 与 webot 7.4.1 不兼容

相关内容