我有一些以 x8-64.rpm 形式提供的软件。那个特别给我带来问题的人我们称之为MYSoftwareRPM.x86_64
。
使用 Yast-Software Manager 它告诉我nothing provides libreadline.so.6()(64bit) needed by MySoftwareRPM.x86_64
我正在运行 SLES 11.4 x86-64 并且有 libreadline5。如果我访问 SLES_12.2.iso 存储库,我可以看到 readline-6.3,如果我选择,我会遇到 100 多个依赖关系问题,基本上是卸载 SLES 版本 11.4,并且给我的印象是,如果我想要 readline6,我需要运行 SLES 12.2。
我能够readline-6.3.tar.gz
通过下载并成功构建它 configure --prefix=/usr/local/readline-6.3; make all; make install
不管正确与否,我都是手动做的
ln -s /usr/local/readline-6.3/lib/libreadline.so.6 /lib64/libreadline.so.6
ln -s /usr/local/readline-6.3/lib/libreadline.so.6 /lib/libreadline.so.6
ln -s /usr/local/readline-6.3/lib/libreadline.so.6 /usr/lib64/libreadline.so.6
ln -s /usr/local/readline-6.3/lib/libreadline.so.6 /usr/lib/libreadline.so.6
我的问题是
- 在这种情况下,安装`MySoftwareRPM.x86_64的最佳方法是什么?
- 有没有办法让 Yast 软件管理器满意并且不报告任何依赖性问题?
- 如果我忽略 Yast Software Manager 的依赖性问题或通过手动安装
rpm -ivh MySoftwareRPM.x64_64
并强制它,那么如果 libreadline.so.6 可用,MySoftwareRPM.x86_64 在执行时会工作吗? - 如果做#3 那么就足够了
LD_LIBRARY_PATH=${LIBRARY_PATH}:/usr/local/readline-6.3/lib
?
答案1
你最好以 root 身份使用 rpm:
rpm -i --nodeps --nosignature MySoftwareRPM.x86_64.rpm
至于readline6,更好地运行
configure && make install && ldconfig
然后它就会进来/usr/local
并且系统会找到它。无需更改ld.so.conf
。