zoukankan      html  css  js  c++  java
  • gearman安装实录

    花了5个小时装好了gearman,问题不断,坑爹的服务器yum还坏了,悲催。

    服务器系统:centos5.3 64位

    gearman版本:1.1.8

    安装包(相关依赖)下载

    1.gearman安装包
    2.Boost
    3.gperf
    4.libevent
    5.sqlite3

    ps:有yum就用它装吧,否则太麻烦了- -|||

    1
    2
    3
    yum install boost-devel
    yum install libevent-devel
    yum install e2fsprogs-devel

    安装流程

    1
    2
    3
    4
    5
    tar zxvf gearmand-1.1.8.tar.gz
    cd gearmand-1.1.8
    ./configure -prefix=/usr/local/gearmand
    make
    sudo make install

    遇到的问题

    1.configure过程中

    1
    2
    checking for Boost headers version >= 1.39.0… no
    configure: error: cannot find Boost headers version >= 1.39.0

    这是因为boost版本过低造成的,下载新版本的安装包

    1
    2
    tar zxf boost_1_50_0.tar.gz && cd boost_1_50_0
    ./bootstrap.sh --prefix=/usr/local/boost

    会生成一个b2的可执行文件,执行

    1
    ./b2 install

    如没有问题,在/etc/profile里的最下方加入:

    1
    2
    export CPPFLAGS=-I/usr/local/boost/include
    export LDFLAGS=-L/usr/local/boost/lib

    保存退出后运行

    1
    source /etc/profile

    好了,boost就更新成功了,还需要创建一下软连接,否则运行gearmand的时候会找不到库

    1
    2
    sudo ln -s /usr/local/boost/lib/libboost_program_options.so /usr/lib64/libboost_program_options.so.1.50.0
    sudo ln -s /usr/local/boost/lib/libboost_program_options.so /usr/lib/libboost_program_options.so.1.50.0

    2.make过程中,遇到

    1
    ./libgearman-1.0/gearman.h:53:27: error: tr1/cinttypes: No such file or directory

    此处是C++编译器问题,解决的方法是

    1
    yum install gcc44 gcc44-c++ libstdc++44-devel

    安装完成后,在环境变量里加入:

    1
    2
    export CC=/usr/bin/gcc44 or export CC=/usr/bin/gcc
    export CXX=/usr/bin/g++44

    保存退出后执行:

    1
    source /etc/profile

    这时可能依然会报错,执行

    1
    CC=gcc44 CXX=g++44

    重新configure,make

    3.make过程中,遇到

    1
    undefined reference to `sqlite3_open_v2'

    这个实在是没有头绪,网上有说自己安装一遍sqlite3到指定目录,然后在gearman的编译配置中加入路径选项,试了貌似无效

    再来参考了这篇文章http://dngood.blog.51cto.com/446195/595215的做法,虽然没太看懂是什么意思,但是有效果…

    引自原文

    分析
    [root@db1 ~]# ldd /usr/local/apache/modules/mod_dav_svn.so | grep libsvn_subr-
    libsvn_subr-1.so.0 => /usr/local/subversion/lib/libsvn_subr-1.so.0 (0x00002b35ca916000)
    [root@db1 ~]# ldd /usr/local/subversion/lib/libsvn_subr-1.so.0 | grep libsqlite3.so.
    libsqlite3.so.0 => /usr/lib64/libsqlite3.so.0 (0x00002b3dd4770000)
    [root@db1 ~]# ldconfig -p | grep sqlite
    libsqlite3.so.0 (libc6,x86-64) => /usr/local/sqlite/lib/libsqlite3.so.0
    libsqlite3.so.0 (libc6,x86-64) => /usr/lib64/libsqlite3.so.0
    libsqlite3.so (libc6,x86-64) => /usr/local/sqlite/lib/libsqlite3.so
    libsqlite3.so (libc6,x86-64) => /usr/lib64/libsqlite3.so

    解决
    [root@db1 sqlite-amalgamation-3070603]# ln -s /usr/local/sqlite/lib/libsqlite3.so.0.8.6 /usr/lib64
    ln: creating symbolic link `/usr/lib64/libsqlite3.so.0.8.6′ to `/usr/local/sqlite/lib/libsqlite3.so.0.8.6′: File exists
    [root@db1 sqlite-amalgamation-3070603]# mv /usr/lib64/libsqlite3.so.0.8.6 /root/bak
    [root@db1 sqlite-amalgamation-3070603]# ln -s /usr/local/sqlite/lib/libsqlite3.so.0.8.6 /usr/lib64
    [root@db1 sqlite-amalgamation-3070603]# ldconfig

    至此…gearman安装完成,中间还修理了一下yum,在成功用它安装了libevent-devel之后又报segment fault,无奈了

  • 相关阅读:
    团队协议
    C++ 多继承和虚继承的内存布局(转)
    轻量级的.Net ORM框架介绍
    EF下CodeFirst、DBFirst与ModelFirst分析
    JDK方式
    JSON
    事务的ACID特性
    数据库查询
    Assets
    内部文件存储
  • 原文地址:https://www.cnblogs.com/youlechang123/p/4025544.html
Copyright © 2011-2022 走看看