Я весь день пытался скомпилировать 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).