I'm facing with this problem when restarting
# 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]
The STOMP protocol Ruby library is already installed:
# gem list stomp *** LOCAL GEMS *** stomp (1.2.2, 1.1.8)
I'm running ruby 1.8.7 with belows RubyGems environment:
# 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/
As @R.I.Pienaar pointed out, I'm mixing up 2 Ruby versions: one was installed by
yum and another was compiled from source.
I've uninstalled all binary ruby-* packages and the question should change to:
How to make MCollective find out the Ruby which was compiled from source (into
# 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)
or how to compile MCollective from source?