編譯安裝Gearman

http://blog.csdn.net/aidenliu/article/details/7406390

本文操作系統環境:32位 fedora 15

1.安裝gearman job server

   (1)下載最新版本gearmand:

  1. wget https://launchpad.net/gearmand/trunk/0.29/+download/gearmand-0.29.tar.gz  
  2. tar -zxvf gearmand-0.29.tar.gz  
  3. cd gearmand-0.29  
  4. ./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

        還有網友提供的編譯安裝,我沒試過:

       

  1. wget http://cdnetworks-us-2.dl.sourceforge.net/project/boost/boost/1.44.0/boost_1_44_0.tar.gz  
  2. tar xvzf  boost_1_44_0.tar.gz  
  3. 然後進入目錄boost_1_44_0執行  
  4.  ./bootstrap.sh --prefix=/usr/local/boost  
  5. 生成bjam以後,再執行  
  6. /bjam install  
  7. 執行軟鏈接  
  8. ln -s /usr/local/boost/include/boost/ /usr/local/include/boost  
  9. 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命令安裝,問題沒解決,需要從源碼編譯

  1. wget http://downloads.sourceforge.net/e2fsprogs/e2fsprogs-1.41.14.tar.gz  
  2. tar xvzf  e2fsprogs-1.41.14.tar.gz  
  3. 進入e2fsprogs-1.41.14目錄後執行  
  4. /configure --prefix=/usr/local/e2fsprogs  
  5. make  
  6. make install  
  7.  然後把uuid目錄拷過去  
  8. cp -r lib/uuid/    /usr/include/  

再次configure ,錯誤消失,於是執行 make


又報錯:

  1. libgearman/.libs/libgearman.so: undefined reference to `uuid_generate'  
  2. libgearman/.libs/libgearman.so: undefined reference to `uuid_unparse'  
  3. collect2: ld returned 1 exit status  

問題在網上找到了解決方法,就是重新編譯e2fsprogs並加入參數

  1. cd e2fsprogs-1.41.14  
  2. ./configure --enable-elf-shlibs  
  3. make  
  4. make install  
  5. cp -rf lib/libuuid.so* /usr/lib  
  1. cd gearmand-0.29  

  make clean

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

 make & make install

安裝成功,此處最好重新configure,否則有可能還是報一樣的錯

 

2.安裝php 的gearman 擴展

 (1)下載最新版本

   

  1. wget http://pecl.php.net/get/gearman-1.0.2.tgz  
  2. tar -zxvf gearman-1.0.2.tgz  
  3. cd gearman-1.0.2  
  4. /usr/local/php/bin/phpize  
  5. ./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,護展安裝成功

---------------------------------------

2、安裝 gearman python API
     下載地址爲
     http://pypi.python.org/packages/source/g/gearman/gearman-2.0.1.tar.gz
     下載完畢後,解壓縮包
     tar xvzf  gearman-2.0.1.tar.gz
     然後進入目錄gearman-2.0.1執行
     python setup.py install

3、啓動gearmand
     啓動命令如下:   
    ./gearmand -uroot -d -L 10.1.148.133 -p 7003

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章