【问题标题】:Rubygems permission problem when using sudo使用 sudo 时的 Rubygems 权限问题
【发布时间】:2011-09-12 21:30:08
【问题描述】:
我使用sudo 来安装gems 并更新rubygems 本身,但这会导致/usr/lib/ruby/gems/1.8/gems 中的所有新文件都归root:root 所有并拥有750 的权限
这反过来会导致大多数宝石无法加载。
例如,我最近更新了 rubygems,如果我尝试gem env,我会得到:
/usr/local/lib/site_ruby/1.8/rubygems/specification.rb:512:in `read': 权限被拒绝 - /usr/lib/ruby/gems/1.8/specifications/rubygems-update-1.6.2.gemspec (错误::EACCES)
来自 /usr/local/lib/site_ruby/1.8/rubygems/specification.rb:512:in `load'
来自 /usr/local/lib/site_ruby/1.8/rubygems/source_index.rb:116:in `load_gems_in'
来自 /usr/local/lib/site_ruby/1.8/rubygems/source_index.rb:115:in `each'
来自 /usr/local/lib/site_ruby/1.8/rubygems/source_index.rb:115:in `load_gems_in'
来自 /usr/local/lib/site_ruby/1.8/rubygems/source_index.rb:112:in `reverse_each'
来自 /usr/local/lib/site_ruby/1.8/rubygems/source_index.rb:112:in `load_gems_in'
来自 /usr/local/lib/site_ruby/1.8/rubygems/source_index.rb:309:in `refresh!'
来自 /usr/local/lib/site_ruby/1.8/rubygems/source_index.rb:67:in `from_gems_in'
来自 /usr/local/lib/site_ruby/1.8/rubygems/source_index.rb:47:in `from_installed_gems'
来自 /usr/local/lib/site_ruby/1.8/rubygems.rb:1025:in `source_index'
来自 /usr/local/lib/site_ruby/1.8/rubygems/gem_path_searcher.rb:135:in `init_gemspecs'
来自 /usr/local/lib/site_ruby/1.8/rubygems/gem_path_searcher.rb:14:in `initialize'
来自 /usr/local/lib/site_ruby/1.8/rubygems.rb:984:in `new'
来自 /usr/local/lib/site_ruby/1.8/rubygems.rb:984:in `searcher'
来自 /usr/local/lib/site_ruby/1.8/rubygems.rb:206:in `try_activate'
来自 /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:57:in `require'
来自 /usr/local/lib/site_ruby/1.8/rubygems/config_file.rb:55
来自 /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:36:in `gem_original_require'
来自 /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:36:in `require'
来自 /usr/local/lib/site_ruby/1.8/rubygems/gem_runner.rb:8
来自 /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:36:in `gem_original_require'
来自 /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:36:in `require'
从 /usr/bin/gem:9
当前的解决方法是 chmod 所有人都可以读取所有文件,但这真的很烦人。
一些服务器统计数据:
uname -a给了
Linux HomeBox 2.6.35 28-server #49-Ubuntu SMP Tue Mar 1 14:55:37 UTC 2011 x86_64 GNU/Linux
sudo gem env给了
RubyGems 环境:
- 红宝石版本:1.6.2
- 红宝石版本:1.8.7(2010-06-23 补丁级别 299)[x86_64-linux]
- 安装目录:/usr/lib/ruby/gems/1.8
- 红宝石可执行文件:/usr/bin/ruby1.8
- 可执行目录:/usr/bin
- 红宝石平台:
- 红宝石
- x86_64-linux
- 宝石路径:
- /usr/lib/ruby/gems/1.8
- /home/nicklas/.gem/ruby/1.8
- 宝石配置:
- :update_sources => 真
- :详细 => 真
- :基准 => 假
- :回溯 => 假
- :bulk_threshold => 1000
- 远程资源:
- http://rubygems.org/
ruby -v给了
ruby 1.8.7 (2010-06-23 patchlevel 299) [x86_64-linux]
我很乐意提供有关该问题的更多信息。
更新
我刚刚清理了所有 ruby 和 rubygems 的东西并重新安装了它。同样的问题。
【问题讨论】:
标签:
ruby
rubygems