【问题标题】:Error while gem install on ubuntu 12.04 aws ec2在 ubuntu 12.04 aws ec2 上安装 gem 时出错
【发布时间】:2014-04-17 14:00:12
【问题描述】:

我在 AWS EC2 中有一个 Ubuntu 12.04 实例。
我只想 gem 安装 rails。
但它显示此错误消息。
这是由 sudo gem env 之间的 gem env 差异引起的吗?
除了 rvm implode 有什么方法可以解决这个问题吗?
改用 rvmsudo 有什么风险?

Fetching: atomic-1.1.15.gem (100%)
ERROR:  While executing gem ... (Gem::FilePermissionError)
You don't have write permissions for the /usr/local/rvm/gems/ruby-1.9.3-p545@global directory.

宝石环境:

RubyGems Environment:
  - RUBYGEMS VERSION: 2.2.2
  - RUBY VERSION: 1.9.3 (2014-02-24 patchlevel 545) [x86_64-linux]
  - INSTALLATION DIRECTORY: /usr/local/rvm/gems/ruby-1.9.3-p545@global
  - RUBY EXECUTABLE: /usr/local/rvm/rubies/ruby-1.9.3-p545/bin/ruby
  - EXECUTABLE DIRECTORY: /usr/local/rvm/gems/ruby-1.9.3-p545@global/bin
  - SPEC CACHE DIRECTORY: /home/ubuntu/.gem/specs
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86_64-linux
  - GEM PATHS:
     - /usr/local/rvm/gems/ruby-1.9.3-p545@global
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :backtrace => false
     - :bulk_threshold => 1000
     - "gem" => "--no-ri --no-rdoc"
  - REMOTE SOURCES:
     - https://rubygems.org/
  - SHELL PATH:
     - /usr/local/rvm/gems/ruby-1.9.3-p545@global/bin
     - /usr/local/rvm/rubies/ruby-1.9.3-p545/bin
     - /usr/local/sbin
     - /usr/local/bin
     - /usr/sbin
     - /usr/bin
     - /sbin
     - /bin
     - /usr/games
     - /usr/local/rvm/bin

sudo gem 环境:

RubyGems Environment:
  - RUBYGEMS VERSION: 1.8.15
  - RUBY VERSION: 1.8.7 (2011-06-30 patchlevel 352) [x86_64-linux]
  - INSTALLATION DIRECTORY: /var/lib/gems/1.8
  - RUBY EXECUTABLE: /usr/bin/ruby1.8
  - EXECUTABLE DIRECTORY: /usr/local/bin
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86_64-linux
  - GEM PATHS:
     - /var/lib/gems/1.8
     - /home/ubuntu/.gem/ruby/1.8
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :benchmark => false
     - :backtrace => false
     - :bulk_threshold => 1000
     - "gem" => "--no-ri --no-rdoc"
  - REMOTE SOURCES:
     - http://rubygems.org/

【问题讨论】:

    标签: ruby-on-rails ubuntu amazon-web-services amazon-ec2


    【解决方案1】:

    这是由 sudo gem env 和 gem env 的差异造成的吗?

    很可能,rvm Ruby 与系统 Ruby 环境是分开的并且不同,并且取决于根据路径执行 gem 的位置。

    但是,您似乎正在以与 /usr/local/rvm/gems 及其子目录的所有者不同的用户身份运行 rvm Ruby gem install,它应该安装为 rvmsudo

    您以什么用户身份运行 rvm gem 安装?

    你可以试试这个:

    chown -R user-you-want-to-run-command-as.user-you-want-to-run-command-as /usr/local/rvm/gems
    

    或者像你提到的那样尝试rvmsudo。由于某些文件可能拥有root 所有权,因此存在风险,如果您想更安全,您可能不希望这样做。

    请注意,rvmsudo 不是推荐的方式,而是在本地目录中使用 rvm。如果你想删除它,你可以这样做:

    rvmsudo rvm implode
    sudo rm -rf /etc/rvmrc /etc/profile.d/rvm.sh /usr/local/rvm
    

    然后用rvm重新安装

    【讨论】:

      【解决方案2】:

      rvm 可以在没有 sudo 或特定/sudo 权限的情况下使用。 重新安装将不胜感激。 清理当前的 rvm 安装 rvmsudo rvm implode sudo rm -rf /etc/rvmrc /etc/profile.d/rvm.sh /usr/local/rvm 然后关闭所有控制台/bashes/终端并以您要使用 rvm 的用户再次登录并再次安装。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-09-02
        • 1970-01-01
        • 1970-01-01
        • 2015-11-10
        • 2013-12-17
        • 2019-10-06
        • 2015-06-24
        • 1970-01-01
        相关资源
        最近更新 更多