2015-08-28 94 views
1

我已经在多用户配置中安装了RVM。似乎一切正常,但当我不得不使用sudo来执行Ruby脚本时,gem安装文件夹和路径是不同的。这最终导致宝石不可用于脚本。多用户RVM - 使用sudo执行Ruby脚本时gem路径不同

如果我执行gem env我得到如下:

RubyGems Environment: 
    - RUBYGEMS VERSION: 2.4.8 
    - RUBY VERSION: 2.2.2 (2015-04-13 patchlevel 95) [x86_64-darwin14] 
    - INSTALLATION DIRECTORY: /usr/local/rvm/gems/ruby-2.2.2 
    - RUBY EXECUTABLE: /usr/local/rvm/rubies/ruby-2.2.2/bin/ruby 
    - EXECUTABLE DIRECTORY: /usr/local/rvm/gems/ruby-2.2.2/bin 
    - SPEC CACHE DIRECTORY: /Users/patrickaikens/.gem/specs 
    - SYSTEM CONFIGURATION DIRECTORY: /etc 
    - RUBYGEMS PLATFORMS: 
    - ruby 
    - x86_64-darwin-14 
    - GEM PATHS: 
    - /usr/local/rvm/gems/ruby-2.2.2 
    - /usr/local/rvm/gems/[email protected] 
... 

如果我执行sudo gem env,我得到这个:

RubyGems Environment: 
    - RUBYGEMS VERSION: 2.4.8 
    - RUBY VERSION: 2.2.2 (2015-04-13 patchlevel 95) [x86_64-darwin14] 
    - INSTALLATION DIRECTORY: /usr/local/rvm/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0 
    - RUBY EXECUTABLE: /usr/local/rvm/rubies/ruby-2.2.2/bin/ruby 
    - EXECUTABLE DIRECTORY: /usr/local/rvm/rubies/ruby-2.2.2/bin 
    - SPEC CACHE DIRECTORY: /Users/patrickaikens/.gem/specs 
    - SYSTEM CONFIGURATION DIRECTORY: /etc 
    - RUBYGEMS PLATFORMS: 
    - ruby 
    - x86_64-darwin-14 
    - GEM PATHS: 
    - /usr/local/rvm/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0 
    - /Users/patrickaikens/.gem/ruby/2.2.0 
... 

注意INSTALLATION_DIRECTORYGEM PATHS是不同的,但两者的输出指示RVM是“活跃的”。我在自己的主目录或根目录的主目录中没有.rvm文件夹。为什么RVM以不同的方式处理这些路径,我可以做到这一点吗?使用rvmsudo似乎工作,但我真的不想记住我的管理脚本中的哪些将在某些时候运行Ruby,如果我不必。

回答

0

当正常运行并以“sudo”运行时,看到不同信息的原因是因为使用sudo绕过RVM而不是在RVM中选择的版本调用系统ruby。 我自己有这个问题。

RVM troubleshooting page建议使用rvmsudo来代替,但这也表明您不需要。

相关问题