当前位置: 首页 > 工具软件 > py3k-gearman > 使用案例 >

编译安装Gearman

彭修筠
2023-12-01

本文操作系统环境:32位 fedora 15

1.安装gearman job server

   (1)下载最新版本gearmand:

     wget https://launchpad.net/gearmand/trunk/0.29/+download/gearmand-0.29.tar.gz
     tar -zxvf gearmand-0.29.tar.gz
     cd gearmand-0.29
     ./configure --prefix=/usr/local/gearmand
         configure 过程中出现如下错误:

            configure: error: cannot find Boost headers version >= 1.37.0

         这是因为boost的版本低于 1.37.0,需要安装超过1.37.0的boost库,用yum安装比较简单:yum install boost-devel.i686

        还有网友提供的编译安装,我没试过:

       

wget http://cdnetworks-us-2.dl.sourceforge.net/project/boost/boost/1.44.0/boost_1_44_0.tar.gz
tar xvzf  boost_1_44_0.tar.gz
然后进入目录boost_1_44_0执行
 ./bootstrap.sh --prefix=/usr/local/boost
生成bjam以后,再执行
/bjam install
执行软链接
ln -s /usr/local/boost/include/boost/ /usr/local/include/boost
ln -s /usr/local/boost/lib/libboost_program_options.so  /usr/lib/libboost_program_options.so
安装完成后,此问题解决。

重新configure 后,出现别的错误:fatal error: uuid/uuid.h: No such file or directory

这是因为没有uuid库和头文件,需要安装e2fsprogs,试过yum命令安装,问题没解决,需要从源码编译

wget http://downloads.sourceforge.net/e2fsprogs/e2fsprogs-1.41.14.tar.gz
tar xvzf  e2fsprogs-1.41.14.tar.gz
进入e2fsprogs-1.41.14目录后执行
/configure --prefix=/usr/local/e2fsprogs
make
make install
 然后把uuid目录拷过去
cp -r lib/uuid/    /usr/include/
再次configure ,错误消失,于是执行 make

又报错:

libgearman/.libs/libgearman.so: undefined reference to `uuid_generate'
libgearman/.libs/libgearman.so: undefined reference to `uuid_unparse'
collect2: ld returned 1 exit status
问题在网上找到了解决方法,就是重新编译e2fsprogs并加入参数

cd e2fsprogs-1.41.14
./configure --enable-elf-shlibs
make
make install
cp -rf lib/libuuid.so* /usr/lib

 cd gearmand-0.29

  make clean

  ./confugure --prefix=/usr/local/gearmand

 make & make install

安装成功,此处最好重新configure,否则有可能还是报一样的错


2.安装php 的gearman 扩展

 (1)下载最新版本

   

wget http://pecl.php.net/get/gearman-1.0.2.tgz
tar -zxvf gearman-1.0.2.tgz
cd gearman-1.0.2
/usr/local/php/bin/phpize
./configure 
但是configure 过程中报如下错误:

configure: error: Please install libgearman

yum install libgearman-devel.i686 libgearman.i686 后,此问题解决,却出现另外一问题:

libgearman version 0.21 or later required

从错误信息来看,是libgearman-devel 的版本低于0.21所至,于是前往寻找版本较高的libgearman-devel

在此页面找到libgearman-devel所以版本列表:http://fr2.rpmfind.net/linux/rpm2html/search.php?query=libgearman-devel&system=&arch=

结果是我的操作系统版本只支持0.14版本的。。。

看来在不重装系统的前提下,只想到降低php gearman库的版本了,从1.0.2版本试到0.8.0,终于搞定~

接下来make&make install 无问题发生

vim /usr/local/php/lib/php.ini 并添加gearman.so

重启php-fpm

执行phpinfo,护展安装成功



 类似资料: