web-dev-qa-db-ja.com

人形とVimが争うRubyバージョン

Puppetlabsの.dmgからpuppet3.0.1をインストールしました。 Ruby 1.9.3を削除すると、puppetは機能しますが、vimインストール(依存プラグイン)のような他のものは機能しません。

http://docs.puppetlabs.com/guides/platforms.html#Ruby-versions 1.9.3によるとサポートされています。では、パペットの何が問題になっているのでしょうか。

% uname -a
Darwin Kusanagi.local 11.4.2 Darwin Kernel Version 11.4.2: Thu Aug 23 16:25:48 PDT 2012; root:xnu-1699.32.7~1/RELEASE_X86_64 x86_64

% which Ruby
/usr/local/bin/Ruby

% Ruby --version
Ruby 1.9.3p327 (2012-11-10 revision 37606) [x86_64-darwin11.4.2]

% /usr/bin/Ruby --version
Ruby 1.8.7 (2012-02-08 patchlevel 358) [universal-darwin11.0]

% brew info Ruby                                                                                                                                    1 ↵
Ruby: stable 1.9.3-p327, HEAD
http://www.Ruby-lang.org/en/
Depends on: pkg-config, readline, gdbm, libyaml
/usr/local/Cellar/Ruby/1.9.3-p327 (796 files, 17M) *
https://github.com/mxcl/homebrew/commits/master/Library/Formula/Ruby.rb
==> Options
--with-tcltk
    Install with Tcl/Tk support
--with-suffix
    Suffix commands with "19"
--universal
    Build a universal binary
--with-doc
    Install documentation
==> Caveats
NOTE: By default, gem installed binaries will be placed into:
  /usr/local/Cellar/Ruby/1.9.3-p327/bin

You may want to add this to your PATH.

% puppet
/usr/local/Cellar/Ruby/1.9.3-p327/lib/Ruby/1.9.1/rubygems/custom_require.rb:36:in `require': cannot load such file -- puppet/util/command_line (LoadError)
    from /usr/local/Cellar/Ruby/1.9.3-p327/lib/Ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
    from /usr/bin/puppet:3:in `<main>'
2
devians

RubyバージョンのPuppetのサポートマトリックスは次のとおりです。

http://docs.puppetlabs.com/guides/platforms.html#Ruby-versions

(エラーメッセージを表示するためにOPが更新された後にUPDATE)

Puppetはシステムに自分自身をインストールしましたRuby /usr/lib/Ruby/1.8/site_Ruby/の下のライブラリの場所。自作Rubyは参照しません。

/usr/bin/puppetの一番上の行は#!/usr/bin/env Rubyで、$ PATHの最初のRubyを実行します。したがって、$ PATH変数を調整するか、その行を変更して具体的に実行することができます。システムRuby、a'la:

#!/usr/bin/Ruby

1
eric sorenson

これが、rvm( http://rvm.io )が発明された理由です。これは、Rubyまたは開発RubyアプリIMHOを実行する唯一の正しい方法です。

1
dres