MCollective无法加载Stomp库?

CentOS 5.5

我在重新启动mcollectivemcollective了这个问题:

 # 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库已经安装:

 # gem list stomp *** LOCAL GEMS *** stomp (1.2.2, 1.1.8) 

我在RubyGems环境下运行ruby 1.8.7:

 # 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/ 

正如@RIPienaar指出的,我将2个Ruby版本混合在一起:一个是由yum安装的,另一个是从源代码编译的。

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

如何使MCollectivefind从源代码编译成的Ruby(到/usr/local/bin )?

 # 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?

看起来你的系统上有2个ruby或一些configuration错误,

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

 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) 

当你的gem安装到/ usr / local / *

  - INSTALLATION DIRECTORY: /usr/local/lib/ruby/gems/1.8 

您正在尝试从.spec文件构build一个需要安装ruby包的RPM包。 既然你从头开始编译ruby,那将是一个问题。

所以你的解决scheme是创build或find一个ruby规范文件,并build立一个基于该规范的ruby二进制包。 这是我的,例如(我从1.9.2分叉):

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

一旦二进制包build立,重新安装ruby与该包,删除/禁用手动编译的当前ruby安装,然后从.spec文件构buildmcollective包。