安装程序所需的旧库文件。

我有一个需要libreadline6的程序。但是我只有libreadline5和libreadline7。我尝试安装库的第6个版本,但是无法成功。出现了一个消息提示说该软件包不可用。消息还指出该库已被淘汰或仅可从其他来源获取。 我可以尝试通过链接使用其他版本,但是应该选择哪个版本呢? 非常感谢任何帮助。-Peter

你可能可以通过简单的符号链接来解决问题。执行以下命令:sudo find /lib -iname libreadline*,看看结果是什么?我怀疑其中一个结果会是 /lib/x86_64-linux-gnu/libreadline.so.7.0,如果是这样的话,下面的命令可能会有用:cd /lib/x86_64-linux-gnu && sudo ln -sv libreadline.so.7.0 libreadline.so.6 - andrew.46
谢谢,我已经创建了一个指向第7版的链接,看起来运行正常。 - PLS
好消息!我已将“评论”转换为正式答案,希望您有时间通过点击答案旁边的“检查”标记将其视为成功的答案... - andrew.46
1个回答

不必下载和安装特定库的点升级或降级,通常可以通过创建一个符号链接(也称为symlink)从所需的库到点升级库来解决。
在您的情况下,libreadline共享库的最常见位置将是/lib/x86_64-linux-gnu/libreadline.so.7.0,尽管可以通过运行以下命令进行测试:
sudo find /lib -iname libreadline*

如果是这种情况,以下两个命令将成功地创建到libreadline.so.7.0的符号链接:
cd /lib/x86_64-linux-gnu
sudo ln -sv libreadline.so.7.0 libreadline.so.6

希望一切都会好起来...
参考资料:
- [链接1:libreadline.so.6所需,但libreadline.so.7是当前版本,构建失败 #993]:一个很好的例子,展示了与你面临相同困境的人所需的语法 :)

你可以创建一个符号链接,但这并不意味着它会起作用。 不同的库版本可能是兼容的,但更有可能是不兼容的,在最糟糕的情况下可能会导致灾难性的结果。 - John