我是一名程序员,我正在尝试为工程团队提供一种在 Linux RHEL 机器上安装 libcurl 的明确可靠的方法。
该机器已默认安装以下内容:
libcurl.so.4
libssl.so.1.0.0
libcrypto.so.1.0.0
libssh2.so.1.0.1
libcidn-2.12.so
以上所有都是 64 位的。我尝试安装的是以下 32 位版本:
libcurl.so.3.0.0
libssl.so.0.9.8e
libcrypto.so.0.9.8e
libcidn-2.5.so
我获得了大多数 rpm,但 libcurl 依赖于很多东西。我在尝试安装 libssl 时收到此错误:
$ rpm -ivh openssl-0.9.8e-12.el5_5.7.i386.rpm
warning: openssl-0.9.8e-12.el5_5.7.i386.rpm: Header V3 DSA/SHA1 Signature, key ID 192a7d7d: NOKEY
Preparing... ########################################### [100%]
package openssl-1.0.0-25.el6_3.1.x86_64 (which is newer than openssl-0.9.8e-12.el5_5.7.i386) is already installed
package openssl-1.0.0-25.el6_3.1.i686 (which is newer than openssl-0.9.8e-12.el5_5.7.i386) is already installed
file /etc/pki/tls/certs/ca-bundle.crt from install of openssl-0.9.8e-12.el5_5.7.i386 conflicts with file from package ca-certificates-2010.63-3.el6_1.5.noarch
file /etc/pki/tls/misc/CA from install of openssl-0.9.8e-12.el5_5.7.i386 conflicts with file from package openssl-1.0.0-25.el6_3.1.x86_64
file /etc/pki/tls/certs/Makefile from install of openssl-0.9.8e-12.el5_5.7.i386 conflicts with file from package openssl-1.0.0-25.el6_3.1.x86_64
openssl 的页面上不再有编译的二进制文件。我只能在网上找到 RHEL 的源 rpm。我尝试使用 noarch rpm,但正如您所见,它不允许我安装或更新。
您能告诉我在这种情况下如何强制安装吗?
机器操作系统是Linux 2.6.32-279.14.1.el6.x86_64
答案1
这行不通。RHEL 使用多库策略,你可以同时安装某些软件包的 32 位和 64 位版本,但仅有的如果它们是完全相同的版本(与体系结构无关的文件将由两个软件包共享,因此它们必须完全相同)。您有 libcurl-4 64 位,只能安装 libcurl-4 32 位。
答案2
在此系统上,您已安装 RHEL 6 openssl x86-64 RPM,但您正尝试安装订购的 RHEL 5 openssl i386 RPM。您需要安装与您的 x86-64 RPM 匹配的 i386 版本的 openssl。
最简单的安装方法是使用yum
而不是rpm
。通过安装(包含所有依赖项)的命令yum
是:
yum -y install libcurl.i386
如果你因为某种原因无法执行此操作,请从 RHEL 更新存储库获取所需的 openssl 包,或者你可以使用CentOS 6 上最新的 openssl RPM。