首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >依赖项失败:从rpm安装openssl时出错

依赖项失败:从rpm安装openssl时出错
EN

Stack Overflow用户
提问于 2015-01-11 09:13:49
回答 1查看 3K关注 0票数 0

我需要升级我的openssl (我现在的版本是OpenSSL 1.0.1e-fips,2013年2月11日)。我的盒子没有连接到互联网。所以我下载Openssl rpm并执行

代码语言:javascript
复制
rpm -Uvh openssl-1.0.1e-40.fc20.x86_64.rpm

命令。然后我得到了跟随错误。

代码语言:javascript
复制
warning: openssl-1.0.1e-40.fc20.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID 246110c1: NOKEY
error: Failed dependencies:
libc.so.6(GLIBC_2.14)(64bit) is needed by openssl-1:1.0.1e-40.fc20.x86_64
libc.so.6(GLIBC_2.15)(64bit) is needed by openssl-1:1.0.1e-40.fc20.x86_64
libcrypto.so.10()(64bit) is needed by openssl-1:1.0.1e-40.fc20.x86_64
libcrypto.so.10(OPENSSL_1.0.1)(64bit) is needed by openssl-1:1.0.1e-40.fc20.x86_64
libcrypto.so.10(OPENSSL_1.0.1_EC)(64bit) is needed by openssl-1:1.0.1e-40.fc20.x86_64
libcrypto.so.10(libcrypto.so.10)(64bit) is needed by openssl-1:1.0.1e-40.fc20.x86_64
libssl.so.10()(64bit) is needed by openssl-1:1.0.1e-40.fc20.x86_64
libssl.so.10(libssl.so.10)(64bit) is needed by openssl-1:1.0.1e-40.fc20.x86_64
openssl-libs(x86-64) = 1:1.0.1e-40.fc20 is needed by openssl-1:1.0.1e-40.fc20.x86_64
libcrypto.so.10()(64bit) is needed by (installed) qt-1:4.6.2-26.el6_4.x86_64
libcrypto.so.10()(64bit) is needed by (installed) libssh2-1.4.2-1.el6.x86_64
libcrypto.so.10()(64bit) is needed by (installed) wget-1.12-1.8.el6.x86_64
libcrypto.so.10()(64bit) is needed by (installed) bind-libs-32:9.8.2-0.17.rc1.el6_4.6.x86_64
libcrypto.so.10()(64bit) is needed by (installed) bind-utils-32:9.8.2-0.17.rc1.el6_4.6.x86_64
libcrypto.so.10()(64bit) is needed by (installed) mysql-libs-5.1.71-1.el6.x86_64
libcrypto.so.10()(64bit) is needed by (installed) fipscheck-1.2.0-7.el6.x86_64
libcrypto.so.10()(64bit) is needed by (installed) python-libs-2.6.6-51.el6.x86_64
libcrypto.so.10()(64bit) is needed by (installed) m2crypto-0.20.2-9.el6.x86_64
libcrypto.so.10()(64bit) is needed by (installed) pyOpenSSL-0.10-2.el6.x86_64
libcrypto.so.10()(64bit) is needed by (installed) python-ldap-0:2.3.10-1.el6.x86_64
libcrypto.so.10()(64bit) is needed by (installed) openssh-5.3p1-94.el6.x86_64
libcrypto.so.10()(64bit) is needed by (installed) ntpdate-4.2.6p5-1.el6.x86_64
libcrypto.so.10()(64bit) is needed by (installed) ntp-4.2.6p5-1.el6.x86_64
libcrypto.so.10()(64bit) is needed by (installed) certmonger-0.61-3.el6.x86_64
libcrypto.so.10()(64bit) is needed by (installed) cyrus-sasl-2.1.23-13.el6_3.1.x86_64
libcrypto.so.10()(64bit) is needed by (installed) postfix-2:2.6.6-2.2.el6_1.x86_64
libcrypto.so.10()(64bit) is needed by (installed) openssh-clients-5.3p1-94.el6.x86_64
libcrypto.so.10()(64bit) is needed by (installed) openssh-server-5.3p1-94.el6.x86_64
libcrypto.so.10()(64bit) is needed by (installed) tcpdump-14:4.0.0-3.20090921gitdf3cb4.2.el6.x86_64
libcrypto.so.10()(64bit) is needed by (installed) perl-Crypt-SSLeay-0.57-16.el6.x86_64
libcrypto.so.10()(64bit) is needed by (installed) nginx-1.6.2-1.el6.ngx.x86_64
libcrypto.so.10(OPENSSL_1.0.1_EC)(64bit) is needed by (installed) nginx-1.6.2-1.el6.ngx.x86_64
libcrypto.so.10(libcrypto.so.10)(64bit) is needed by (installed) nginx-1.6.2-1.el6.ngx.x86_64
libssl.so.10()(64bit) is needed by (installed) qt-1:4.6.2-26.el6_4.x86_64
libssl.so.10()(64bit) is needed by (installed) libssh2-1.4.2-1.el6.x86_64
libssl.so.10()(64bit) is needed by (installed) wget-1.12-1.8.el6.x86_64
libssl.so.10()(64bit) is needed by (installed) mysql-libs-5.1.71-1.el6.x86_64
libssl.so.10()(64bit) is needed by (installed) python-libs-2.6.6-51.el6.x86_64
libssl.so.10()(64bit) is needed by (installed) m2crypto-0.20.2-9.el6.x86_64
libssl.so.10()(64bit) is needed by (installed) pyOpenSSL-0.10-2.el6.x86_64
libssl.so.10()(64bit) is needed by (installed) python-rhsm-1.9.6-1.el6.x86_64
libssl.so.10()(64bit) is needed by (installed) python-ldap-0:2.3.10-1.el6.x86_64
libssl.so.10()(64bit) is needed by (installed) postfix-2:2.6.6-2.2.el6_1.x86_64
libssl.so.10()(64bit) is needed by (installed) perl-Crypt-SSLeay-0.57-16.el6.x86_64
libssl.so.10()(64bit) is needed by (installed) nginx-1.6.2-1.el6.ngx.x86_64
libssl.so.10(libssl.so.10)(64bit) is needed by (installed) nginx-1.6.2-1.el6.ngx.x86_64

我知道这是一种与依赖的冲突。在离线模式下更新openssl的方法是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-11 09:42:49

您必须满足所有可能因升级而中断的依赖关系。

显然,所有提到的这些包都需要特定版本的libcrypto,而这个版本似乎也不存在于您试图安装的rpm中,所以这只剩下一个解决方案:您必须将所有这些包升级到接受较新的openSSL版本的版本。

这是一个典型的例子,它通常被称为“依赖地狱”--您可以使用依赖感知软件管理系统(如rpm )。虽然这种情况看起来确实令人讨厌,但这是有很好的理由的,而且没有真正的解决办法。rpm命令提供了一个“强制”选项来安装该包,尽管所有这些依赖项警告都失败了。但是最终所有的软件包都会被破坏,所以这样的安装或多或少地破坏了你的系统。因此,这不是一种选择。

您可以尝试收集越来越多的软件包,并与该openSSL包一起脱机安装它们。但这是一项非常繁琐的任务。帮你自己一个忙,为这个任务建立一个临时的网络连接。然后,包管理系统可以自行整理所有这些依赖项。

实际上,我意识到还有一个选择:

您可以在本地镜像在目标系统中配置的存储库,这些存储库位于具有internet连接的其他系统上。这意味着您必须同步(下载)该存储库中的所有包以及层次结构,并设置可以从目标系统访问的本地存储库服务器。这样,您就可以在本地使用该存储库作为包源,并具有自动依赖性解析的所有优点。但不需要建立互联网连接。您所需要的只是与提供镜像存储库的系统建立网络连接。您还必须更改目标系统上包管理的配置,以使用本地镜像而不是远程镜像。

您还可以通过在常规(每天)基础上同步本地镜像服务来保持它。这是许多公司实际上为减少网络流量所做的事情。这样,本地镜像在某种程度上就像本地系统的包代理。

存储库镜像是一种文档化的策略。您将发现一个与您的发行版相匹配的详细说明。

另一个想法是:-)

如果您的问题不是您不能/不想为该目标系统设置internet连接,而是无法设置任何网络连接,那么还有一个选项:

如前所述,您可以创建存储库镜像,但可以将其存储在本地磁盘上。例如,一个usb硬盘。这样,您就可以将该存储库附加到目标系统上的本地文件系统中,并将其安装到目标系统上,并配置您的包管理,以便将该本地副本用作存储库。这样,您就根本不需要目标系统上的网络连接。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27885543

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档