首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MCollective无法加载Stomp库?

MCollective无法加载Stomp库?
EN

Server Fault用户
提问于 2012-05-07 10:06:55
回答 2查看 2.5K关注 0票数 0

CentOS 5.5

当重新启动mcollective时,我面临着这个问题:

代码语言:javascript
复制
# service mcollective restart
Shutting down mcollective: 
Starting mcollective: /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `gem_original_require': no such file to load -- stomp (LoadError)
    from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `require'
    from /usr/lib/ruby/site_ruby/1.8/mcollective.rb:2
    from /usr/sbin/mcollectived:3:in `require'
    from /usr/sbin/mcollectived:3
                                                           [FAILED]

STOMP协议Ruby库已经安装:

代码语言:javascript
复制
# gem list stomp

*** LOCAL GEMS ***

stomp (1.2.2, 1.1.8)

我正在运行ruby1.8.7和下面的RubyGems环境:

代码语言:javascript
复制
# ruby -v
ruby 1.8.7 (2008-05-31 patchlevel 0) [x86_64-linux]
# gem env
RubyGems Environment:
  - RUBYGEMS VERSION: 1.3.7
  - RUBY VERSION: 1.8.7 (2008-05-31 patchlevel 0) [x86_64-linux]
  - INSTALLATION DIRECTORY: /usr/local/lib/ruby/gems/1.8
  - RUBY EXECUTABLE: /usr/local/bin/ruby
  - EXECUTABLE DIRECTORY: /usr/local/bin
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86_64-linux
  - GEM PATHS:
     - /usr/local/lib/ruby/gems/1.8
     - /root/.gem/ruby/1.8
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :benchmark => false
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - http://rubygems.org/

正如@R.I.Pienaar所指出的,我混合了两个Ruby版本:一个是由yum安装的,另一个是从源代码编译的。

我已经卸载了所有的二进制ruby-*包,问题应该更改为:

如何使MCollective找到从源代码编译的Ruby (编译为/usr/local/bin)?

代码语言:javascript
复制
# cd /usr/local/src/marionette-collective
# rake rpm
...
Building RPM for mcollective-2.0.0-1
================
which: no rpmbuild-md5 in (/usr/lib64/qt-3.3/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/bin:/opt/redis/bin)
error: Failed build dependencies:
    ruby is needed by mcollective-2.0.0-1.el5.noarch
    ruby(abi) = 1.8 is needed by mcollective-2.0.0-1.el5.noarch
rake aborted!
Failed: rpmbuild -D 'version 2.0.0' -D 'rpm_release 1' -D 'dist .el5' -D 'use_lsb 0' -ba /usr/src/redhat/SPECS/mcollective.spec
/usr/local/src/marionette-collective/Rakefile:35:in `safe_system'
(See full trace by running task with --trace)

或者如何从源代码编译MCollective?

EN

回答 2

Server Fault用户

回答已采纳

发布于 2012-05-07 12:56:57

看上去你的系统上有2颗红宝石或一些错误配置,

system正在使用/usr/lib/ ruby /*中的系统ruby

代码语言:javascript
复制
Starting mcollective: /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `gem_original_require': no such file to load -- stomp (LoadError)

当您的gems安装到/usr/local/*中时

代码语言:javascript
复制
  - INSTALLATION DIRECTORY: /usr/local/lib/ruby/gems/1.8
票数 4
EN

Server Fault用户

发布于 2012-05-12 18:03:18

您正在尝试从需要安装ruby包的.spec文件中构建RPM包。既然你从头到尾编译了红宝石,那就成问题了。

因此,您的解决方案是为ruby创建或找到一个spec文件,并在该规范的基础上构建一个ruby二进制包。例如,这里是我的(我从1.9.2中分叉):

https://github.com/rilindo/ruby-1.9.3-rpm

生成二进制包后,使用该包重新安装ruby,删除/禁用手动编译的当前ruby安装,然后从.spec文件中构建remove包。

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/386646

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档