【问题标题】:Failed dependencies: error when installing openssl from rpm依赖项失败:从 rpm 安装 openssl 时出错
【发布时间】:2015-01-11 09:13:49
【问题描述】:

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

rpm -Uvh openssl-1.0.1e-40.fc20.x86_64.rpm

命令。然后我得到以下错误。

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?

【问题讨论】:

  • 这个问题似乎离题了,因为它与编程或开发无关。也许Super User 会是一个更好的提问地点。

标签: linux openssl rpm rhel


【解决方案1】:

您必须满足升级会破坏的所有依赖项。

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

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

可以尝试收集越来越多的软件包并将它们与openSSL 软件包一起离线安装。但那是一项非常繁琐的任务。帮自己一个忙,以某种方式为该任务建立一个临时的互联网连接。然后包管理系统可以自己整理所有这些依赖项。


其实我觉得还有一个选择:

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

您还可以通过定期(每天)同步本地镜像服务来保持该服务。这就是许多公司实际上为减少网络流量所做的事情。这样,本地镜像的行为有点像本地系统的包代理。

存储库镜像是一个有据可查的策略。您将找到与您的分布相匹配的详细说明。


还有一个想法::-)

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-09-09
    • 1970-01-01
    • 2010-10-26
    • 2021-11-08
    • 1970-01-01
    • 1970-01-01
    • 2015-10-14
    • 2021-05-01
    相关资源
    最近更新 更多