我正在尝试安装rpm并收到以下错误:
---> Package geramer-server.x86_64 0:3.6.0.117-1 will be an update
--> Processing Dependency: libcrypto.so.10(libcrypto.so.10)(64bit) for package: geramer-server-3.6.0.117-1.x86_64
---> Package geramer-ui.x86_64 0:3.6.0.98-1 will be updated
---> Package geramer-ui.x86_64 0:3.6.0.117-1 will be an update
--> Finished Dependency Resolution
Error: Package: geramer-server-3.6.0.117-1.x86_64 (/geramer-server-3.6.0.117.x86_64)
Requires: libcrypto.so.10(libcrypto.so.10)(64bit)
我的第一个想法是没有安装libcrypto.so。但事实并非如此,请参阅:
$ ldconfig -p | grep libcrypto.so
libcrypto.so.10 (libc6,x86-64) => /usr/lib64/libcrypto.so.10
它也存在于磁盘上:
$ ls -l /usr/lib64/libcrypto.so.10
lrwxrwxrwx 1 root root 18 Dec 4 13:11 /usr/lib64/libcrypto.so.10 -> libcrypto.so.1.0.0
并且RPM也知道它:
$ yum whatprovides "*/libcrypto.so.10"
Loaded plugins: product-id, rhnplugin, subscription-manager
*Note* Red Hat Network repositories are not listed below. You must run this command as root to access RHN repositories.
openssl-1.0.0-25.el6_3.1.x86_64 : A general purpose cryptography library with TLS implementation
Repo : installed
Matched from:
Filename : /usr/lib64/libcrypto.so.10
所以我缺少什么想法?
此致 岸堤
答案 0 :(得分:9)
我知道这个帖子有点旧,但我最近遇到了这个问题,并想分享我所做的修复,特别是因为@divanov的回答帮助我调试了这个问题。
在我的情况下,我无法安装特定的postgres rpm(postgresql91),并且看到同样的错误:
Error: Package: postgresql91-libs-9.1.12-1PGDG.rhel6.x86_64 (/postgresql91-libs-9.1.12-1PGDG.rhel6.x86_64)
Requires: libcrypto.so.10(libcrypto.so.10)(64bit)
Error: Package: postgresql91-libs-9.1.12-1PGDG.rhel6.x86_64 (/postgresql91-libs-9.1.12-1PGDG.rhel6.x86_64)
Requires: libssl.so.10(libssl.so.10)(64bit)
基本上,我能够通过升级已安装的openssl版本来解决问题。在撰写本文时,openssl-1.0.1e-15可在CentOS(6)存储库中找到,此处:openssl-1.0.1e-15.el6.x86_64.rpm并提供以前缺少的libssl和libcrypto依赖项。
要安装,您可以:
sudo yum install http://mirror.centos.org/centos/6/os/x86_64/Packages/openssl-1.0.1e-15.el6.x86_64.rpm
同样,如果CentOS仓库中的版本发生变化,该URL可能不再有效。
好的,现在为血淋淋的细节......
最初,我的机器安装了openssl-1.0.0-27.el6_4.2.x86_64.rpm,它没有提供我postgres rpm要求的所有软件包:
> rpm -q --provides openssl
config(openssl) = 1.0.0-27.el6_4.2
...
libcrypto.so.10()(64bit)
...
libssl.so.10()(64bit)
...
安装较新的openssl版本后:
> rpm -q --provides openssl
config(openssl) = 1.0.1e-16.el6_5.4
...
libcrypto.so.10()(64bit)
libcrypto.so.10(OPENSSL_1.0.1)(64bit)
libcrypto.so.10(OPENSSL_1.0.1_EC)(64bit)
libcrypto.so.10(libcrypto.so.10)(64bit)
...
libssl.so.10()(64bit)
libssl.so.10(OPENSSL_1.0.1)(64bit)
libssl.so.10(OPENSSL_1.0.1_EC)(64bit)
libssl.so.10(libssl.so.10)(64bit)
...
现在一切都很开心......
从底线开始,安装较新版本的openssl,它应该提供您需要的依赖项。祝你好运!
答案 1 :(得分:1)
我能够通过从/etc/yum.conf中的排除行中删除openssl来解决这个问题。我们有托管服务器,所以它默认放在那里。然后,我只是运行了我需要的正常yum安装,结果很好。
答案 2 :(得分:1)
尝试使用RHEL7或CentOS 7的以下命令同时安装openssl和openssl-libs:
sudo yum install http://mirror.centos.org/centos/7/os/x86_64/Packages/openssl-1.0.2k-8.el7.x86_64.rpm http://mirror.centos.org/centos/7/os/x86_64/Packages/openssl-libs-1.0.2k-8.el7.x86_64.rpm
由于openssl和openssl-libs都需要彼此作为依赖并且在没有sudo的情况下运行,因此旧版本可能会出现冲突问题。
答案 3 :(得分:0)
我使用yumdownloader
创建openssl rpm的本地副本。然后我使用rpmrebuild和-e -p PACKAGE
标志来添加缺少的Provides
并创建一个新的rpm。然后安装了生成的工件。增加Release
也有所帮助。
答案 4 :(得分:0)
[2018-11-07]我的解决方案..
sudo yum install http://mirror.centos.org/centos/7/os/x86_64/Packages/openssl-1.0.2k-12.el7.x86_64.rpm http://mirror.centos.org/centos/7/os/x86_64/Packages/openssl-libs-1.0.2k-12.el7.x86_64.rpm
这是..
sudo yum install
http://mirror.centos.org/centos/7/os/x86_64/Packages/openssl-1.0.2k-12.el7.x86_64.rpm
http://mirror.centos.org/centos/7/os/x86_64/Packages/openssl-libs-1.0.2k-12.el7.x86_64.rpm
如果该文件不是.. 您应该访问该站点并找到最新消息,然后编辑文件名。
ex)
访问==> http://mirror.centos.org/centos/7/os/x86_64/Packages/
查找==> openssl-1.0.2k-
答案 5 :(得分:0)
从此link下载正确的rpm软件包。
具体来说,
wget http://mirror.centos.org/centos/7/os/x86_64/Packages/openssl-libs-1.0.2k-16.el7.x86_64.rpm
rpm -ivh openssl-libs-1.0.2k-16.el7.x86_64.rpm --force
然后再次yum install
您的包裹。