我整个下午都在尝试在 CentOS 5.8 上编译 Gearman。
搜索结果显示可以通过以下方式安装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 ./配置&& 制作-j8 && 制作安装
一切正常。现在我需要为 PHP 安装 Gearman 库。我尝试通过 PECL 和直接下载源代码,但都导致相同的错误:
检查是否启用 gearman 支持...是的,共享 未找到 配置:错误:请安装 libgearman
我不明白的是,我安装了该libgearman-devel
软件包,同时也安装了核心libgearman
。安装程序安装了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
。
软件包版本是否可能低于要求的版本?我仍在研究这个问题,但我想我会提出这个问题,看看是否有人有解决方案,同时我会继续研究修复方法。
谢谢!
答案1
这应该可以解决问题:
export GEARMAN_LIB_DIR=/usr/include/libgearman
export GEARMAN_INC_DIR=/usr/include/libgearman
这应该可以工作,如果不行的话你将必须对 config.m4 做一些小的编辑。
答案2
关于此问题的其他一些有用说明可以在这里找到: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
更新:Epel 最近更新到了 gearmand / libgearman 1.1.8,与之前的版本(0.14?)相比,这个版本非常新。所以应该不需要自己编译它(当然除了 php pecl 扩展)。