É possível instalar um RPM de terceiros localmente? Para não interferir no sistema RPM?

1

Este é um sistema do CentOS 5, x64, usando yum/rpm para o gerenciamento de pacotes. O libxml2 é um pouco datado e a biblioteca XML Perl que gostaria de instalar (do CPAN) requer uma versão mais atualizada da biblioteca libxml2.

Agora eu poderia fazer o download do código-fonte e criar e instalar em /usr/local .

Mas eles também fornecem RPMs em ftp://xmlsoft.org/libxml2/ . É possível instalar o RPM de forma a não interferir com o RPM fornecido pelo sistema, o qual não quero alterar nem atualizar?

Eu tentei o seguinte:

package-cleanup --problems libxml2-2.7.8-1.x86_64.rpm

Mas a saída parece indicar que irá substituir o sistema RPM, que não é o que eu quero.

Marking libxml2-2.7.8-1.x86_64.rpm as an update to libxml2-2.6.26-2.1.12.el5_7.2.i386

Além disso, ao continuar, o comando falha com erros.

--> Finished Dependency Resolution
eel2-2.16.1-1.el5.i386 from installed has depsolving problems
  --> Missing Dependency: libxml2.so.2 is needed by package eel2-2.16.1-1.el5.i386 (installed)
libxml2-python-2.6.26-2.1.12.el5_7.2.x86_64 from installed has depsolving problems
  --> Missing Dependency: libxml2 = 2.6.26 is needed by package libxml2-python-2.6.26-2.1.12.el5_7.2.x86_64 (installed)
...

Então, voltando a compilar a partir do código-fonte? Ou existe uma maneira de usar o RPM?

Atualizar

O que me interessa aqui é a instalação lado-a-lado de um RPM em algo como /opt ou /usr/local ou seja qual for o seu --prefix du jour. O RPM deve apenas verificar se suas dependências são atendidas pelo sistema, mas não deve sob nenhuma circunstância tentar substituir ou alterar qualquer coisa no sistema.

    
por Lumi 15.02.2012 / 12:20

2 respostas

1

Você pode obter o srpm ou as fontes. A maioria dos pacotes permitirá que você os construa para instalar em um destino em / home ( ./configure --prefix=/home/foo ). Nunca construí um RPM para fazer isso, mas também deve ser possível. No entanto, você pode precisar filtrar os metadados de dependência no rpm e no nome para não enganar o banco de dados interno do RPM e pensar que você substituiu o pacote real.

    
por 15.02.2012 / 14:50
0

Depende de como você deseja gerenciar seu sistema no futuro.

Você pode continuar com a compilação de código-fonte, mas essa abordagem produz muito lixo no sistema dificilmente gerenciável depois de algum tempo.

Se você tentar instalar o RPM, você encontrará o chamado "dependency hell". No seu caso, há dois pacotes que dependem da antiga biblioteca libxml2:

libxml2-python
eel2

Existem 2 maneiras de proceder nesta situação:

  1. Instale o novo pacote libxml2 com a opção --nodeps:
rpm -Uvh libxml2-2.7.8-1.x86_64.rpm --nodeps

No entanto, note que o software dependente pode ser incompatível com esta nova versão.

  1. Faça o download do novo SRC-RPMS para libxml2-python e eel2 e reconstrua-os em relação à versão mais nova do libxml2. No entanto, não posso garantir que a compilação seja bem-sucedida.
por 15.02.2012 / 16:26