Centos

為 CentOS 5.8 編譯 Gearman PHP 庫

  • July 6, 2016

我整個下午都在嘗試在 CentOS 5.8 上編譯 Gearman。

搜尋說要通過以下方式安裝以下內容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

這工作正常。所以現在我需要為 PHP 安裝 Gearman 庫。我嘗試通過 PECL 並直接下載原始碼,都導致相同的錯誤:

檢查是否啟用 gearman 支持...是的,共享
未找到
配置:錯誤:請安裝 libgearman

我不明白的是我安裝了libgearman-devel也安裝了 core 的包libgearman。安裝會安裝libgearman-devel-0.14-3.el5.x86_64libgearman-devel-0.14-3.el5.i386libgearman-0.14-3.el5.x86_64libgearman-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擴展)。

引用自:https://serverfault.com/questions/441110