Instalando o PostgreSQL 9.0 no RHEL 6.4 (Como fazer com que o Yum inclua uma versão do OpenSSL que construí da origem)

1

Eu recebo os seguintes erros de yum install 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)

A O primeiro resultado no Google indicou que o postgresql 9+ exige openssl 1.0.1 .

Um yum info openssl revelou que eu tinha openssl 1.0.0. Um yum update openssl me disse que eu tinha a atualização mais recente.

Então eu imaginei que eu criaria 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

Mas agora estou em uma perda de como eu iria ficar yum perceber que eu tenho o direito openssl. O yum install postgresql90-server resulta na mesma mensagem de erro acima.

Eu acho que se eu pudesse sincronizar o yum com minha nova versão do openssl, eu seria bom.

    
por Matthew Moisen 17.12.2013 / 22:35

3 respostas

1

Não vai. Você tem 3 opções se quiser que o yum lide com seu novo software.

Opção nº 1 - use força letal

Faça o download dos arquivos .rpm que você está tentando instalar e informe o rpm para instalá-los para você. Você pode fazer isso usando 1 ou uma combinação dessas duas opções para obter o que deseja.

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

Exemplo

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

NOTA: eu não faria desta maneira!

Opção # 2 - Reempacotando um pacote.

Você frequentemente encontrará esse cenário, especialmente com openssl . Eu faria o download do arquivo rpm de origem ( src.rpm ) e, em seguida, instalaria isso em uma área de desenvolvimento para criar RPMs.

OBSERVAÇÃO: Se você não tiver uma, poderá usar a ferramenta rpmdev-setuptree para criar uma. Está no pacote rpmdevtools .

Você pode pegar um dos pacotes openssl disponíveis no serviço de compilação Koji do Fedora , por exemplo, < href="http://koji.fedoraproject.org/koji/buildinfo?buildID=479409"> este . Você vai querer baixar o pacote .src.rpm e instalá-lo em sua área de desenvolvimento ( $HOME/rpmbuild ):

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

Uma vez instalado, você tem o esqueleto das peças que entram em uma versão empacotada de openssl . Eu geralmente edito o arquivo SPEC/openssl.spec e troco no meu próprio arquivo openssl-latest.tar.gz .

Depois de fazer a cirurgia neste pacote, você pode reconstruí-lo:

$ rpmbuild -tb SPEC/openssl.spec

Como alternativa, se o .src.rpm estiver em um nível recente e você quiser recriá-lo, faça isso:

$ rpmbuild --rebuild openssl..src.rpm

Uma vez que você tenha reconstruído usando um dos métodos, os arquivos RPM resultantes estão aqui:

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

Opção # 3 - use o shell do yum

Você pode consultar esta página yum para obter dicas sobre como lidar com um sistema no qual você está misturando pacotes. Esse método é mais para quando você precisa executar tarefas mais complexas com o yum do que se pode realizar com uma única linha de comando.

Pode ser útil para você também aqui.

    
por 17.12.2013 / 23:41
0

Eu tive um problema muito parecido com a instalação dos mesmos RPMs que você.

Eu tentei forçar, mas postgres não funcionou uma vez instalado - apesar de ter o libssl correto, ele se recusou a rodar.

Eu sugiro tentar instalar os RPMs diretamente, mas para a versão 9.0.14 - tanto quanto eu posso dizer que o 9.0.15 RPM está quebrado. Isso funcionou para mim.

    
por 08.01.2014 / 18:39
0

Eu acertei o mesmo problema no CentOS 6.x para instalações PGDG do Postgres 9.0 - 9.3. Aqui está como resolvemos isso:

Primeiro baixei e instalei a versão do Postgres que eu procurava:

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

Ao tentar instalar os pacotes postgresql92, acertei o mesmo erro:

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)

Para resolver (você pode usar qualquer espelho, eu procurei os pacotes em link ):

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

Por fim, instale os pacotes postgres que você procurava (para validação eu instalei tudo):

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!
    
por 11.10.2014 / 01:50