私は午後中ずっとGearmanをCentOS5.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
それは正しく機能します。そこで、PHP用のGearmanライブラリをインストールする必要があります。 PECLを使用してソースを直接ダウンロードしようとしましたが、どちらも同じエラーになります。
ギアマンサポートを有効にするかどうかを確認しています...はい、共有 見つかりません 構成:エラー:libgearman をインストールしてください
私が理解していないのは、コアlibgearman
もインストールしたlibgearman-devel
パッケージをインストールしたことです。インストールにより、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
そして、上記のリンクとこれに関するランダムなグーグルに基づいて、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
UPDATE:Epelは最近gearmand/libgearman 1.1.8に更新されました。これは、以前のバージョン(0.14?)と比較して非常に新しいものです。したがって、自分でコンパイルする必要はありません(もちろん、php pecl拡張機能を除く)。