AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 386646
Accepted
quanta
quanta
Asked: 2012-05-08 02:06:55 +0800 CST2012-05-08 02:06:55 +0800 CST 2012-05-08 02:06:55 +0800 CST

MCollective 无法加载 Stomp 库?

  • 772

中央操作系统 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)

我正在使用以下 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​​-* 包,问题应该改为:

如何让 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?

ruby puppet rabbitmq mcollective
  • 2 2 个回答
  • 2500 Views

2 个回答

  • Voted
  1. Best Answer
    R.I.Pienaar
    2012-05-08T04:56:57+08:002012-05-08T04:56:57+08:00

    看起来你的系统上有 2 个红宝石或一些错误配置,

    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
    
    • 4
  2. Rilindo
    2012-05-13T10:03:18+08:002012-05-13T10:03:18+08:00

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

    所以你的解决方案是为 ruby​​ 创建或找到一个规范文件,并根据该规范构建一个 ruby​​ 二进制包。例如,这是我的(我从 1.9.2 分叉出来的):

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

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

    • 0

相关问题

  • 是否有 bash 等效于 ruby​​ 的“一些内容#{foo}”?

  • 乘客 + Nginx => 502 错误网关

  • 在 Apache + Passenger 上运行 Ruby on Rails 应用程序 == 占用大量内存

  • VMWare ESXi 3 有哪些自动化选项?

  • Postfix 的最佳设置和优化 VPS 上的自定义交付脚本

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve