刚使用Linux不久,使用F9系统在安装程序时出现问题:
错误 rpm_check_debug 和 depsolve:
perl(GBF::Make) is needed by anjuta-2.25.901-2.fc11.i386
libcrypto.so.7 is needed by libflashsupport-000-0.5.svn20070904.i386
libssl.so.7 is needed by libflashsupport-000-0.5.svn20070904.i386
请报告这个错误给 Bugzilla
网上搜索后看到有人说是
Because there may be dependencies on specific library SONAME versions,
such as libcrypto.so.6 and not libcrypto.so.7
首先尝试一下清除缓存、升级系统
#yum -y update
有文件未能完全下载 重试了几次
不过结束后还是提示同样的问题
使用rpm -q openssl检查发现存在openssl-0.9.8g-fc9.i686
试图删除它,发现受依赖的文件太多,于是作罢。
检查发现usr/lib/libssl.so.0.9.8g libcrypto.so.1
使用rpm -ql openssl检查发现/lib/libssl.so.7和/lib/libcrypto.so.7
也就是文件都存在,只是版本错误。
这时候觉得问题原因:应该是安装openssl版本错误,应该安装.i386而不是.i686
在网上有人分析
Kevin Kofler:
The postuninstall scriptlet from the old package is run during upgrades.
(It's run AFTER the postinstall scriptlet of the new one. RPM installs the
new package, then removes the old one. Of course only the files which are
not in the new package are removed. But the postun scriptlet is run.)
Tomas Mraz:
That could make sense. In case the old package uninstalled is the 0.9.8g
version it will probably cause the %postun ldconfig to remove the
symlink. I've added a triggerpostun scriptlet to reinstate the symlinks
if they are missing to openssl-0.9.8j-5.fc11.旧包的版本是0.9.8g,它可能引起了%postun ldconfig to
remove thesymlink.
实在无奈 考虑卸载重装openssl
卸载步骤:
1.1 停止服务sshd
1.2 卸载Openssh
#rpm -e openssh-* --nodeps(*代表版本)
#rpm -e openssh-server-* --nodeps
#rpm -e openssh-clients-* --nodeps
#rpm -e openssh-askpass-*
1.3 卸载Openssl
#rpm -e openssl-devel-*
#rpm -e openssl-*
之后发现大部分应用程序不能用了
重新安装
#rpm -ivh openssl-0.9.8j-7.fc11.i386.rpm
#rpm -ivh openssl-devel-0.9.8j-7.fc11.i386.rpm
发现其中的文件为libcrypto.so.8,不符合。
于是改为安装openssl-0.9.8g-9.12.fc9.i386、openssh-5.1p1-3.fc9.i386
之前的应用程序能用了。不过
#yum update 还是出现问题
于是继续网络搜索
发现 原因居然是 libflashsupport、anjuta与文件系统冲突
删除后一切ok。
总结:看来还有很多东西要学习呀,这么简单的问题这么久才搞定。