CentOS 5.5
当重新启动mcollective时,我面临着这个问题:
# 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)我正在运行ruby1.8.7和下面的RubyGems环境:
# 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)?
# 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?
发布于 2012-05-07 12:56:57
看上去你的系统上有2颗红宝石或一些错误配置,
system正在使用/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)当您的gems安装到/usr/local/*中时
- INSTALLATION DIRECTORY: /usr/local/lib/ruby/gems/1.8发布于 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包。
https://serverfault.com/questions/386646
复制相似问题