我在AWS EC2中获得了一个Ubuntu 12.04实例
我只想要宝石安装导轨。
但它显示了此错误消息
这是由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.
gem env:
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 env:
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/
答案 0 :(得分:5)
rvm可以在没有sudo或特定/ sudo权限的情况下使用。
重新安装将不胜感激。
清理当前的rvm安装
rvmsudo rvm implode
sudo rm -rf /etc/rvmrc /etc/profile.d/rvm.sh /usr/local/rvm
然后关闭所有控制台/ bashes / terminales并再次使用您要使用rvm的用户登录并重新安装。
答案 1 :(得分:3)
这是由sudo gem env之间的差异gem env引起的吗?
很可能,rvm
Ruby是独立的,与系统Ruby环境不同,取决于根据路径执行gem
的位置。
但是,看起来您正在以不同的用户身份运行rvm Ruby gem安装作为/usr/local/rvm/gems
的所有者及其子目录,该子目录应该安装为rvmsudo
您运行rvm gem install的用户是什么?
你可以试试这个:
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