【问题标题】:Multi-User RVM - gem path different when using sudo to execute Ruby script多用户 RVM - 使用 sudo 执行 Ruby 脚本时 gem 路径不同
【发布时间】:2015-11-23 08:24:06
【问题描述】:

我在多用户配置中安装了 RVM。一切似乎都正常,但是当我必须使用 sudo 执行 Ruby 脚本时,gem 安装文件夹和路径不同。这最终导致 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/ruby-2.2.2@global
...

如果我执行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 处于“活动状态”。我自己的主目录或 root 的主目录中都没有 .rvm 文件夹。为什么 RVM 以不同的方式处理这些路径,我可以使它们相同吗?使用rvmsudo 似乎确实有效,但我真的不想记住我的哪些管理脚本会在某些时候运行 Ruby,如果我不需要的话。

【问题讨论】:

    标签: ruby gem rvm


    【解决方案1】:

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

    RVM troubleshooting page 建议改用 rvmsudo,但也建议您不需要。

    【讨论】:

      猜你喜欢
      • 2012-03-11
      • 1970-01-01
      • 2011-01-29
      • 2015-08-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多