A instalação do comando falhou na dependência de libevent

2

Instalei o repositório PostgreSQL yum e tenho o PostgreSQL em execução há algum tempo, mas agora, quando tento instalar o gearmand , recebo os seguintes erros:

Transaction Check Error:
  file /usr/bin/event_rpcgen.py from install of compat-libevent14-1.4.13-1.rhel6.x86_64 conflicts with file from package libevent-devel-2.0.12-1.rhel6.x86_64
  file /usr/lib64/libevent_core.a from install of compat-libevent14-1.4.13-1.rhel6.x86_64 conflicts with file from package libevent-devel-2.0.12-1.rhel6.x86_64
  file /usr/lib64/libevent_core.so from install of compat-libevent14-1.4.13-1.rhel6.x86_64 conflicts with file from package libevent-devel-2.0.12-1.rhel6.x86_64
  file /usr/lib64/libevent_extra.a from install of compat-libevent14-1.4.13-1.rhel6.x86_64 conflicts with file from package libevent-devel-2.0.12-1.rhel6.x86_64
  file /usr/lib64/libevent_extra.so from install of compat-libevent14-1.4.13-1.rhel6.x86_64 conflicts with file from package libevent-devel-2.0.12-1.rhel6.x86_64

Isso ocorre porque o libevent está vindo do repositório postgresql, então pensei em desabilitar o repositório postgresql e tentar novamente:

yum --disablerepo=pgdg91 install gearmand

Error: Package: gearmand-0.14-3.el6.2.x86_64 (epel)
       Requires: libevent-1.4.so.2()(64bit)
       Available: libevent-1.4.13-1.el6.x86_64 (base)
           libevent-1.4.so.2()(64bit)
       Installed: libevent-2.0.12-1.rhel6.x86_64 (@pgdg91)
           Not found

Existe uma maneira de manter a versão do libevent usada pelo postgresql e ao mesmo tempo instalar o comando gearmand (com a versão correta do libevent)? Ou eu estou negligenciando alguma coisa e existe outra maneira (talvez melhor)?

    
por PeeHaa 03.07.2012 / 22:22

2 respostas

4

Ao utilizar o repositório postgresql yum, você quebrou a compatibilidade binária em seu sistema CentOS / RHEL. Isso significa que existem pacotes (como o libevent) que o repositório atualiza / substitui e são incompatíveis com outros pacotes fornecidos pelo CentOS / RHEL depois de instalados.

Especificamente, seu repositório postgresql substituiu o libevent-1.4 que é fornecido com o RHEL com o libevent-2.0 fornecido pelo postgresql, e a biblioteca de compatibilidade do 1.4 que o postgresql também fornece está quebrada.

Este pacote específico, gearmand, vem do repositório epel e você pode tentar reconstruí-lo a partir de seu RPM de origem usando um comando como:

yumdownloader --source gearmand
rpmbuild --rebuild gearmand-0.14-3.el6.2.src.rpm

Em seguida, instale o RPM resultante.

Tenha em mente que isso pode exigir um trabalho mais extenso para massagear o RPM de origem para aceitar as novas versões das bibliotecas ou causar outros problemas, mas é um ponto de partida. Caso isso falhe, você pode criar manualmente um pacote de código-fonte, mas se torna difícil desinstalá-lo ou atualizá-lo mais tarde, portanto, crie um RPM de origem, se puder.

    
por 10.07.2012 / 07:28
2

Meu palpite é que seria melhor compilar manualmente o comando da próxima vez: 1) Compile e instale o libevent em um diretório não padrão:

wget --no-check-certificate https://github.com/downloads/libevent/libevent/libevent-2.0.19-stable.tar.gz
tar xvfz libevent-2.0.19-stable.tar.gz
cd libevent-2.0.19-stable
./configure --prefix /opt/libevent && make && make install

2) Compile o comando usando algo como:

wget https://launchpad.net/gearmand/trunk/0.33/+download/gearmand-0.33.tar.gz
tar xvfz gearmand-0.33.tar.gz
cd gearmand-0.33
export LDFLAGS='LDFLAGS=-L/opt/libevent'
./configure && make && make install

Por favor, deixe-me saber se isso ajuda.

    
por 09.07.2012 / 11:28