Я установил репозиторий PostgreSQL yum, и PostgreSQL уже некоторое время работает, но теперь, когда я пытаюсь установить gearmand
Я получаю следующие ошибки:
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
Это связано с тем, что libevent поступает из репозитория postgresql, поэтому я подумал, что просто отключу репозиторий postgresql и попробую еще раз:
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
Есть ли способ сохранить версию libevent, используемую postgresql, и одновременно установить gearmand (с правильной версией libevent)? Или я что-то упускаю из виду и есть другой (возможно, лучший) способ?
Используя репозиторий postgresql yum, вы нарушили двоичную совместимость в вашей системе CentOS / RHEL. Это означает, что есть пакеты (например, libevent), которые этот репозиторий обновляет / заменяет, и которые несовместимы с другими пакетами, предоставляемыми CentOS / RHEL после установки.
В частности, ваше репозиторий postgresql заменил libevent-1.4, который поставляется с RHEL, с libevent-2.0, предоставленным postgresql, и библиотека совместимости 1.4, которую также предоставляет postgresql, не работает.
Этот конкретный пакет, gearmand, поступает из репозитория epel, поэтому вы можете попробовать восстановить его из исходного RPM, используя такую команду, как:
yumdownloader --source gearmand
rpmbuild --rebuild gearmand-0.14-3.el6.2.src.rpm
Затем установите получившийся RPM.
Имейте в виду, что для этого может потребоваться более обширная работа по массажу исходного пакета RPM для принятия новых версий библиотек или может вызвать другие проблемы в будущем, но это отправная точка. Если это не удастся, вы можете вручную собрать пакет с исходным кодом, но тогда становится трудно удалить или обновить его позже, поэтому по возможности создайте исходный RPM.
Я предполагаю, что было бы лучше вручную скомпилировать gearmand следующим образом: 1) Скомпилируйте и установите libevent в нестандартный каталог:
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) Скомпилируйте gearmand, используя что-то вроде:
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
Пожалуйста, дайте мне знать, если это поможет.