在 RHEL 6.4 上安装 PostgreSQL 9.0(如何让 Yum 包含我从源代码构建的 OpenSSL 版本)

在 RHEL 6.4 上安装 PostgreSQL 9.0(如何让 Yum 包含我从源代码构建的 OpenSSL 版本)

我收到以下错误yum 安装 postgresql90-server:

Error: Package: postgresql90-9.0.15-1PGDG.rhel6.x86_64 (pgdg90)
       Requires: libssl.so.10(libssl.so.10)(64bit)
Error: Package: postgresql90-server-9.0.15-1PGDG.rhel6.x86_64 (pgdg90)
       Requires: libssl.so.10(libssl.so.10)(64bit)
Error: Package: postgresql90-libs-9.0.15-1PGDG.rhel6.x86_64 (pgdg90)
       Requires: libcrypto.so.10(libcrypto.so.10)(64bit)
Error: Package: postgresql90-server-9.0.15-1PGDG.rhel6.x86_64 (pgdg90)
       Requires: libcrypto.so.10(libcrypto.so.10)(64bit)
Error: Package: postgresql90-libs-9.0.15-1PGDG.rhel6.x86_64 (pgdg90)
       Requires: libssl.so.10(libssl.so.10)(64bit)

谷歌上的第一个结果表明 postgresql 9+ 需要openssl 1.0.1.

透露yum info openssl我有 openssl 1.0.0。 Ayum update openssl告诉我我已经升级到最新版本了。

所以我想我会构建 1.0.1:

wget http://www.openssl.org/source/openssl-1.0.1e.tar.gz
tar -xvf openssl-1.0.1e.tar.gz
cd openssl-1.0.1e
./config
make
make test
make install

但现在我不知道如何让 yum 意识到我拥有正确的 openssl。结果yum install postgresql90-server与上面相同的错误消息。

我想如果我能将 yum 与我的新版本 openssl 同步,那就太好了。

答案1

不会的。如果您希望 yum 处理您的新软件,您有 3 个选择。

选项#1 - 使用致命武力

下载.rpm您尝试安装的文件并告诉rpm我们为您安装它们。您可以使用 1 个或这 2 个开关的组合来实现此目的,以获得您想要的效果。

  --nodeps                         do not verify package dependencies
  --force                          short hand for --replacepkgs --replacefiles

例子

$ rpm -ivh --nodeps <rpmfile1> <rpmfile2> ...

笔记:我不会这样做!

选项 #2 - 重新打包。

您经常会遇到这种情况,尤其是使用openssl.我会下载源 rpm ( src.rpm) 文件,然后将其安装在开发区域中以构建 RPM。

笔记:如果您没有,您可以使用该工具rpmdev-setuptree制作一个。它在包裹里rpmdevtools

您可以抓住其中之一Fedora 的 Koji 构建服务上提供 openssl 软件包, 例如,这个。您需要下载该.src.rpm软件包并将其安装到您的开发区域 ( $HOME/rpmbuild):

$ rpm -ivh http://kojipkgs.fedoraproject.org/packages/openssl/1.0.1e/34.fc21/src/openssl-1.0.1e-34.fc21.src.rpm

安装完成后,您就拥有了打包版本的各个部分的骨架openssl。我经常会编辑SPEC/openssl.spec文件并交换到我自己的openssl-latest.tar.gz文件中。

一旦我完成了这个包的手术,你就可以重建它:

$ rpmbuild -tb SPEC/openssl.spec

作为替代方案,如果它.src.rpm处于最近的水平并且您只想重建它,那么请执行以下操作:

$ rpmbuild --rebuild openssl..src.rpm

使用任一方法重建后,生成的 RPM 文件如下:

$ $HOME/rpmbuild/RPMS/x86_64/openssl-...rpm

选项 #3 - 使用 yum 的 shell

您可以查阅此yum页面以获取有关如何处理混合软件包的系统的提示。当您需要使用 yum 执行比单个命令行更复杂的任务时,此方法更适合。

这也许对你也有帮助。

答案2

我在安装与您完全相同的 RPM 时遇到了非常相似的问题。

我尝试强制它,但 postgres 一旦安装就无法工作 - 尽管有正确的 libssl 它拒绝运行。

我建议尝试直接安装 RPM,但对于版本 9.0.14 - 据我所知,9.0.15 RPM 已损坏。这对我有用。

答案3

我在 CentOS 6.x 上从 Postgres 9.0 - 9.3 安装 PGDG 时遇到了同样的问题。我们是这样解决的:

首先我下载并安装了我想要的 Postgres 版本:

yum install http://yum.postgresql.org/9.2/redhat/rhel-6-x86_64/pgdg-redhat92-9.2-7.noarch.rpm

当尝试安装 postgresql92 软件包时,我遇到了同样的错误:

Error: Package: postgresql92-9.2.9-1PGDG.rhel6.x86_64 (pgdg92)
 Requires: libssl.so.10(libssl.so.10)(64bit) Error: Package: postgresql92-server-9.2.9-1PGDG.rhel6.x86_64 (pgdg92)
 Requires: libcrypto.so.10(libcrypto.so.10)(64bit) Error: Package: postgresql92-contrib-9.2.9-1PGDG.rhel6.x86_64 (pgdg92)
 Requires: libcrypto.so.10(libcrypto.so.10)(64bit) Error: Package: postgresql92-libs-9.2.9-1PGDG.rhel6.x86_64 (pgdg92)
 Requires: libcrypto.so.10(libcrypto.so.10)(64bit) Error: Package: postgresql92-server-9.2.9-1PGDG.rhel6.x86_64 (pgdg92)
 Requires: libssl.so.10(libssl.so.10)(64bit) Error: Package: postgresql92-contrib-9.2.9-1PGDG.rhel6.x86_64 (pgdg92)
 Requires: libssl.so.10(libssl.so.10)(64bit) Error: Package: postgresql92-libs-9.2.9-1PGDG.rhel6.x86_64 (pgdg92)
 Requires: libssl.so.10(libssl.so.10)(64bit)

要解决(您可以使用任何镜像,我在中查找了软件包http://rpm.pbone.net/index.php3/stat/4/idpl/25381551/dir/centos_6/com/openssl-1.0.1e-16.el6_5.4.x86_64.rpm.html):

yum install ftp://ftp.muug.mb.ca/mirror/centos/6.5/updates/x86_64/Packages/openssl-1.0.1e-16.el6_5.4.x86_64.rpm
yum install ftp://ftp.muug.mb.ca/mirror/centos/6.5/updates/x86_64/Packages/openssl-devel-1.0.1e-16.el6_5.4.x86_64.rpm
yum install ftp://ftp.muug.mb.ca/mirror/centos/6.5/updates/x86_64/Packages/openssl-static-1.0.1e-16.el6_5.4.x86_64.rpm

最后,安装您想要的 postgres 软件包(为了验证我安装了所有内容):

yum install postgresql92*

...

Installed:   postgresql92.x86_64 0:9.2.9-1PGDG.rhel6                  
postgresql92-contrib.x86_64 0:9.2.9-1PGDG.rhel6                      
postgresql92-debuginfo.x86_64 0:9.2.9-1PGDG.rhel6                
postgresql92-devel.x86_64 0:9.2.9-1PGDG.rhel6                        
postgresql92-docs.x86_64 0:9.2.9-1PGDG.rhel6                     
postgresql92-jdbc.x86_64 0:9.2.1002-1PGDG.rhel6                      
postgresql92-jdbc-debuginfo.x86_64 0:9.2.1002-1PGDG.rhel6        
postgresql92-libs.x86_64 0:9.2.9-1PGDG.rhel6                         
postgresql92-odbc.x86_64 0:09.02.0100-1PGDG.rhel6                
postgresql92-odbc-debuginfo.x86_64 0:09.02.0100-1PGDG.rhel6          
postgresql92-plperl.x86_64 0:9.2.9-1PGDG.rhel6                   
postgresql92-plpython.x86_64 0:9.2.9-1PGDG.rhel6                     
postgresql92-pltcl.x86_64 0:9.2.9-1PGDG.rhel6                    
postgresql92-server.x86_64 0:9.2.9-1PGDG.rhel6                       
postgresql92-tcl.x86_64 0:2.0.0-1.rhel6                          
postgresql92-tcl-debuginfo.x86_64 0:2.0.0-1.rhel6                    
postgresql92-test.x86_64 0:9.2.9-1PGDG.rhel6                     

Dependency Installed:   java-1.5.0-gcj.x86_64 0:1.5.0.0-29.1.el6      
java_cup.x86_64 1:0.10k-5.el6         jpackage-utils.noarch
0:1.7.5-3.12.el6           libart_lgpl.x86_64 0:2.3.20-5.1.el6        
libgcj.x86_64 0:4.4.7-3.el6           libtool-ltdl.x86_64
0:2.2.6-15.5.el6             libxslt.x86_64 0:1.1.26-2.el6_3.1        
sinjdoc.x86_64 0:0.5-9.1.el6          unixODBC.x86_64
0:2.2.14-12.el6_3                uuid.x86_64 0:1.6.1-10.el6           

Complete!

相关内容