root@app1:~# gem -v
1.8.10当我使用rvm时,我得到了1.8.10。但是当我使用sudo时,我得到:
root@app1:~# sudo gem -v
1.3.7现在,当我在root用户之外的其他用户上安装gem时
test@app1:~$ gem install RedCloth
Fetching: RedCloth-4.2.8.gem (100%)
ERROR: While executing gem ... (Errno::EACCES)
Permission denied - /usr/local/rvm/gems/ree-1.8.7-2011.03/cache/RedCloth-4.2.8.gem这出了什么问题?
下面是我使用no sudo时的gem env
root@app1:~# gem env
RubyGems Environment:
- RUBYGEMS VERSION: 1.8.10
- RUBY VERSION: 1.8.7 (2011-02-18 patchlevel 334) [x86_64-linux]
- INSTALLATION DIRECTORY: /usr/local/rvm/gems/ree-1.8.7-2011.03
- RUBY EXECUTABLE: /usr/local/rvm/rubies/ree-1.8.7-2011.03/bin/ruby
- EXECUTABLE DIRECTORY: /usr/local/rvm/gems/ree-1.8.7-2011.03/bin
- RUBYGEMS PLATFORMS:
- ruby
- x86_64-linux
- GEM PATHS:
- /usr/local/rvm/gems/ree-1.8.7-2011.03
- /usr/local/rvm/gems/ree-1.8.7-2011.03@global
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :benchmark => false
- :backtrace => false
- :bulk_threshold => 1000
- "gem" => "--no-rdoc --no-ri"
- "install" => "--no-ri --no-rdoc --env-shebang"
- :sources => ["http://gemcutter.org", "http://gems.rubyforge.org/", "http://gems.github.com"]
- "update" => "--no-ri --no-rdoc --env-shebang"
- REMOTE SOURCES:
- http://gemcutter.org
- http://gems.rubyforge.org/
- http://gems.github.com下面是我使用sudo时的gem env
root@app1:~# sudo gem env
RubyGems Environment:
- RUBYGEMS VERSION: 1.3.7
- RUBY VERSION: 1.8.7 (2010-08-16 patchlevel 302) [x86_64-linux]
- INSTALLATION DIRECTORY: /var/lib/gems/1.8
- RUBY EXECUTABLE: /usr/bin/ruby1.8
- EXECUTABLE DIRECTORY: /var/lib/gems/1.8/bin
- RUBYGEMS PLATFORMS:
- ruby
- x86_64-linux
- GEM PATHS:
- /var/lib/gems/1.8
- /root/.gem/ruby/1.8
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :benchmark => false
- :backtrace => false
- :bulk_threshold => 1000
- "gem" => "--no-rdoc --no-ri"
- :sources => ["http://gemcutter.org", "http://gems.rubyforge.org/", "http://gems.github.com"]
- "install" => "--no-ri --no-rdoc --env-shebang"
- "update" => "--no-ri --no-rdoc --env-shebang"
- REMOTE SOURCES:
- http://gemcutter.org
- http://gems.rubyforge.org/
- http://gems.github.com 发布于 2011-10-24 20:40:53
这里需要注意三件事:
sudo会在用户切换期间清除其中的大部分,以防止攻击者将LD_PRELOAD等危险变量注入到提升的执行上下文中。如果您希望使用sudo并希望将您的RVM环境保留在新的shell中,请改用rvmsudo。rvm的组,并确保它的所有成员都可以写入RVm目录,这是安装rubies、创建gem和安装gem所必需的。确保您的用户在该组中。或者,您可以直接使用rvmsudo...https://stackoverflow.com/questions/7874429
复制相似问题