`
xiaoyu966
  • 浏览: 258874 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Gearman::XS在Centos下编译安装

阅读更多

============================================================================

原创作品,允许转载。转载时请务必以超链接形式标明原始出处、以及本声明。

请注明转自:http://yunjianfei.iteye.com/blog/

============================================================================   

 

    Gearman支持各种语言,其官网的描述如下:

 

Language Bindings/Drivers/Frameworks
Select your language – cross links to download section which details all your options.
C, C#/.NET, Go, Java, Lisp, Nodejs, PHP, Perl, Python, Ruby, Database UDFs.

 

       个人尝试了C、python、perl三种语言的API,感觉perl的API功能相对来说齐全一点。Gearman::XS是perl的开源支持。链接如下:http://search.cpan.org/~krow/Gearman-XS/

 

      我是在RHEL5.7下安装的Gearman::XS,中间出了各种问题,这里主要记录是怎么解决的。首先,我使用了cpanm来安装Gearman::XS,结果如下:

[@localhost yunfei]# cpanm Gearman::XS
--> Working on Gearman::XS
Fetching http://www.cpan.org/authors/id/K/KR/KROW/Gearman-XS-0.15.tar.gz ... OK
Configuring Gearman-XS-0.15 ... OK
Building and testing Gearman-XS-0.15 ... FAIL
! Installing Gearman::XS failed. See /root/.cpanm/work/1392343258.18128/build.log for details. Retry with --force to force install it.

 

显然force强制安装肯定是不行的,所以就找原因。查看 /root/.cpanm/work/1392343258.18128/build.log文件,发现其中有如下的提示:

gcc -c -Wall -Wundef -Wno-shadow -Wmissing-prototypes -fdiagnostics-show-option -Wformat=2 -Wstrict-aliasing -Wextra -Wmissing-declarations -Wcast-align -Wswitch-default -Wswitch-enum -Wno-undef -Wno-unused-value -Wno-unused-variable -Wno-unused-parameter -Wno-format-invalid-specifier -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -DVERSION=\"0.15\" -DXS_VERSION=\"0.15\" -fPIC "-I/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/CORE" XS.c
cc1: error: unrecognized command line option "-Wno-format-invalid-specifier"
make: *** [XS.o] Error 1
-> FAIL Installing Gearman::XS failed.

 看到是在编译的时候出了问题,所以,咱们切换到它的编译目录(即 /root/.cpanm/work/1392343258.18128/这个目录)

cd /root/.cpanm/work/1392343258.18128/Gearman-XS-0.15

 然后执行make命令,就可以看到上面报的编译错误了。ok,着手解决它。

vi Makefile

 找到

CCFLAGS = -Wall -Wundef -Wno-shadow -Wmissing-prototypes -fdiagnostics-show-option -Wformat=2 -Wstrict-aliasing -Wextra -Wmissing-declarations -Wcast-align -Wswitch-default -Wswitch-enum -Wno-undef -Wno-unused-value -Wno-unused-variable -Wno-unused-parameter -Wno-format-invalid-specifier

 删掉最后的“-Wno-format-invalid-specifier”这个选项,然后保存退出,再次执行make。

 

发现报如下错误:

In file included from XS.xs:11:
gearman_xs.h:18:36: error: libgearman-1.0/gearman.h: No such file or directory
XS.c: In function 'XS_Gearman__XS_strerror':
XS.c:229: error: 'gearman_return_t' undeclared (first use in this function)
XS.c:229: error: (Each undeclared identifier is reported only once
XS.c:229: error: for each function it appears in.)
XS.c:229: error: expected ';' before 'rc'
XS.xs:82: warning: implicit declaration of function 'gearman_strerror'
XS.xs:82: error: 'rc' undeclared (first use in this function)
XS.xs:82: warning: assignment makes pointer from integer without a cast
make: *** [XS.o] Error 1

 很明显,是找不到gearman.h,也就是说需要gearman-devel,正常情况下通过yum直接安装gearman-devel包就可以解决这个问题,但是,我的rhel是手动安装的Gearman-1.1.11版本,和yum安装的版本不一致,所以,再次打开并修改Makefile。

找到INC以及LDDLFLAGS,修改为如下内容:

LDDLFLAGS = -shared -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -L/usr/local/gearman/lib/ -lgearman

 

INC = -I/usr/local/gearman/include/ -L/usr/local/gearman/lib/

 可以看到就是加入了Gearman的incule以及lib相关的东西。保存退出Makefile,再次执行make,顺利通过,然后make install就安装完毕了。

 

1
0
分享到:
评论

相关推荐

    Gearman::XS在Centos下的编译安装方法

    在CentOS系统中,安装和编译Gearman::XS,一个Perl模块,用于与Gearman服务器进行交互,可能涉及到多个步骤。以下是一个详尽的指南,涵盖了从环境准备到解决问题的整个过程。 首先,确保你的CentOS系统是最新的,...

    docker-gearman:Docker Gearman服务器

    码头工人Docker Gearman服务器

    pecl-gearman:libgearmanPHP包装器

    **pecl-gearman:libgearmanPHP包装器** `pecl-gearman`是PHP扩展,用于与libgearman库交互,它提供了一个高效且功能丰富的接口,使得PHP开发者可以充分利用Gearman分布式任务处理系统。这个扩展的核心目标是让PHP...

    node-gearman::gear:Gearman客户端和节点的工作程序

    Gearman客户和工人优点: 全面实施工人和客户通过原始Gearman协议进行精益抽象大量的单元测试快速地小的与用其他语言编写的齿轮工客户和工人完全可互操作缺点: 缺乏优雅的高级抽象来进行工作。 多写一些样板每个...

    gearman-ruby:官方! 用于Gearman分布式作业系统的Ruby库

    Gearman-ruby 这是什么? 这是用于分布式作业系统的纯Ruby库。 需要做什么? 更多测试,一些代码清除。 这到底是什么 目前,该库对Ruby应用程序具有客户端和工作程序支持。 入门 客户 一个非常简单的客户端,它...

    go-gearman:戈朗工作调度员

    gm := gearman . NewGearman ( workerNum , queueSize , SetIdleTimeout ( 1 * time . Minute ), SetExceptionCall ( func ( error ))) 开始/停止 gm . Start () defer gm . Stop () 提交 gm . Submit ( sharding...

    li3_gearman:与 Gearman 的锂集成

    li3_gearman 是在 [BSD License] 下发布的。 安装 建议您将 li3_gearman 作为 GIT 子模块安装,以便跟上最新的升级。 为此,请切换到包含您的锂应用程序的核心目录,然后执行以下操作: $ git submodule add ...

    (源码)基于Perl和Lighttpd的YLEM系统.zip

    # 基于Perl和Lighttpd的YLEM系统 ## 项目简介 YLEM系统是一个基于Perl和Lighttpd的分布式服务系统,主要用于提供前端... sudo cpan install Danga::Socket JSON DBI Perlbal Gearman::Server Gearman::Client::Async

    Gearman环境搭建资料

    本篇文章将详细讲解如何在Linux环境中搭建Gearman,包括依赖库的安装和Gearman服务的配置。 首先,我们来看三个重要的依赖库: 1. **libevent-2.0.22-stable.tar.gz**: 这是libevent库的一个版本,它是一个事件...

    Zend_Gearman:发送 Gearman 工人

    齿轮人该项目允许利用... class DemoWorker extends Gearman_Worker { protected $_registerFunction = 'demowork'; protected $_timeout = 10000; // 10 seconds protected $_memory = 10; // 10 MB protected functi

    Gearman安装相关资源

    在 Gearman 的安装过程中,通常会涉及以下几个步骤: 1. **下载源码**:从描述中看到提供了两个版本的 Gearman 源码包,分别是 `gearmand-1.1.12.tar.gz` 和 `gearman-1.1.2.tgz`。用户应根据自己的需求和系统环境...

    mod_gearman:使用Gearman Queues分发Naemon HostService检查和事件处理程序。 包括HostServicegroups亲和力

    在Naemon核心中有一个NEB模块,它将servicecheck,hostcheck和eventhandler添加到Gearman队列中。 对方是执行检查的一个或多个工作客户端。 可以将Worker配置为仅运行对特定主机或服务组的检查。 并且您至少需要...

    php使用gearman进行任务分发操作实例详解

    通过以上知识点的介绍,我们了解了在PHP环境下如何安装和使用Gearman进行任务分发和异步处理任务。掌握了这些知识点后,开发者可以有效地利用Gearman解决Web应用中的长耗时任务处理问题,提高应用性能和用户体验。

    gearman-cookbook:Gearman厨师食谱

    - **创建任务**:在 Ruby 中,你可以使用 `Gearman::Client` 来创建一个客户端,然后提交任务到 Gearman 服务器。例如,你可以定义一个函数,将工作包入一个 Gearman 任务,并等待结果: ```ruby require '...

    gearman-1.1.2

    2)安装操作系统环境:CentOS-6.5,(其它linux操作系统请自行尝试)。 3)本软件安装步骤详解:http://blog.csdn.net/clevercode/article/details/45718735。 4) 博客专栏地址(Linux常用软件安装与配置):...

    gearman下载gearman下载

    `gearman-java-0.04.jar`是Gearman Java客户端的编译后版本,包含预编译的Java类,可以直接在Java项目中作为依赖使用,无需自行编译源代码。通过引入这个jar文件,开发者可以轻松地在Java应用中调用Gearman的功能,...

    Gearman安装可能涉及到的安装包

    该资源包括安装Gearman时可能涉及到的软件包 具体包括gearmand、gearman、php、gperf、libevent

    java-gearman-service(gearman-java-service)

    java实现gearman的job实现的jar包,包括gearman server,client和work客户端API

    gearman 文档

    ### Gearman文档与集群计算...无论是在大型社交平台如LiveJournal的应用场景下,还是在各种高性能计算环境中,Gearman都展现出了其独特的价值。通过对Gearman的理解和应用,开发者可以构建出更加稳定、高效的应用系统。

    Gearman C# API和示例

    在这个“Gearman C# API和示例”项目中,我们将探讨如何使用C#语言与Gearman进行交互,以及如何在Visual Studio 2008环境下构建和运行相关的应用程序。 首先,让我们深入了解Gearman C# API。这个API为C#开发者提供...

Global site tag (gtag.js) - Google Analytics