编译安装Gearman

原创 2012年03月29日 12:10:00

本文操作系统环境: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,护展安装成功



安装Gearman及其PHP扩展

CentOS 上安装Gearman及其PHP扩展 发表于 2013 年 5 月 22 日 》》目标 安装 Gearman 服务端(C语言)安装PHP扩展 安装Gearman服务端 # yum i...

gearman 在Ubuntu上部署Gearman

1.更新 sudo apt-get 中没有gearmand,所以用wget下载 wget https://launchpad.net/gearmand/1.2/1.1.12/+download/g...

在Linux上安装Gearman及配置使用Gearman的PHP扩展环境

在Linux上安装Gearman及配置使用Gearman的PHP扩展环境。 先介绍安装 Gearman 。 1. 先安装依赖库 # yum install -y boost-devel gper...
  • iw1210
  • iw1210
  • 2017年05月23日 19:31
  • 874

Ubuntu下Gearman安装搭建

1.更新 sudo apt-get update wget https://launchpad.net/gearmand/1.2/1.1.12/+download/gearmand-1.1.12.ta...
  • hywerr
  • hywerr
  • 2017年05月26日 23:26
  • 281

Linux中Gearman安装与使用,分布式消息队列(CentOS-6.5:gearmand-1.1.12)

1 Gearman简介 1.1 概况    Gearman是一个用来把工作委派给其他机器、分布式的调用更适合做某项工作的机器、并发的做某项工作在多个调用间做负载均衡、或用来在调用其它语言的函数的系统...

gearman异步队列安装及使用教程

gearman异步队列安装流程 必备条件:你的centos需要提前安装了lnmp,如果没有安装可以参照教程: http://blog.csdn.net/e421083458/article/deta...

gearmand的安装

最近要开发邮件服务,需要用到gearmand,找时间研究了一下,现在把一些安装的事宜以及一些错误分享一下。 安装步骤 1.安装gearmand需要依赖的服务yum install boost-de...

Linux启动gearman服务

好久没用Gearman了,服务器上的Gearman server不知道什么时候被停掉了,所以当执行程序时,报错: File "python/response.py", line 41, in ...

Mysql 主从从级联复制

需求:三个服务器A->B->C级联主从 版本: 数据库 mysql 5.6_64bit_binary_install                            操作系统: r...
  • lmocm
  • lmocm
  • 2014年12月24日 16:31
  • 2216

Ubuntu 14.04 PHP Warning: Module 'PDO' already loaded in Unknown on line 0 PHP (solved)

Ubuntu 14.04 PHP Warning:  Module 'PDO' already loaded in Unknown on line 0 PHP Warning:  Module '...
  • burner
  • burner
  • 2015年02月06日 22:04
  • 1826
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:编译安装Gearman
举报原因:
原因补充:

(最多只允许输入30个字)