Назад | Перейти на главную страницу

Компиляция библиотеки Gearman PHP для CentOS 5.8

Я весь день пытался скомпилировать Gearman на CentOS 5.8.

Поиски сказали установить следующие через yum:

yum -y install --enablerepo=remi boost141-devel libgearman-devel e2fsprogs-devel e2fsprogs gcc44 gcc-c++

Чтобы заголовки Boost работали правильно, я сделал следующее:

cp -f /usr/lib/boost141/* /usr/lib/
cp -f /usr/lib64/boost141/* /usr/lib64/
rm -f /usr/include/boost
ln -s /usr/include/boost141/boost /usr/include/boost

После установки всех зависимостей и настроек путей я загружаю и компилирую gearmand-1.1.2 просто хорошо.

wget -O /tmp/gearmand-1.1.2.tar.gz https://launchpad.net/gearmand/1.2/1.1.2/+download/gearmand-1.1.2.tar.gz
cd /tmp && tar zxvf gearmand-1.1.2.tar.gz
./configure && make -j8 && make install

Это работает правильно. Итак, теперь мне нужно установить библиотеку Gearman для PHP. Я попытался использовать PECL и загрузить источник напрямую, оба результата привели к одной и той же ошибке:

checking whether to enable gearman support... yes, shared
not found
configure: error: Please install libgearman

Я не понимаю, что установил libgearman-devel пакет, который также установил ядро libgearman. Установка устанавливает libgearman-devel-0.14-3.el5.x86_64, libgearman-devel-0.14-3.el5.i386, libgearman-0.14-3.el5.x86_64, и libgearman-0.14-3.el5.i386.

Возможно ли, что версия пакета ниже, чем требуется? Я все еще ковыряюсь в этом, но решил, что брошу это, чтобы посмотреть, есть ли у кого-нибудь решение, пока я продолжаю исследовать исправление.

Спасибо!

Это должно помочь:

export GEARMAN_LIB_DIR=/usr/include/libgearman
export GEARMAN_INC_DIR=/usr/include/libgearman

Это должно сработать, в противном случае вам придется внести небольшие правки в config.m4.

Некоторые другие полезные примечания по этому поводу можно найти здесь: http://gearman.info/build/centos5-8.html

И на основе ссылки выше и случайного поиска в Google это сработало для меня, не беспокоясь о папках lib / include:

yum install boost141 boost141-devel gcc44 gcc44-c++ uuid-devel
export CC="gcc44"
export CFLAGS="-std=gnu99"
export CXX="gcc44-c++"
export CPPFLAGS="-I/usr/include/boost141"
export LDFLAGS="-L/usr/lib64/boost141"
CC=gcc44 CXX=g++44 ./configure
make
make install

ОБНОВИТЬ: Epel недавно обновился до gearmand / libgearman 1.1.8, который является очень свежим по сравнению с версией, которая у них была раньше (0,14?). Поэтому нет необходимости компилировать его самостоятельно (за исключением, конечно, расширения php pecl).