我有一台运行 Ubuntu Hardy 的机器,它提供了自己的 RubyGems 包。不幸的是,该版本的 RubyGems (1.1.1) 太旧,无法做任何有用的事情,所以我决定手动将 RubyGems 更新到当前版本 (1.3.6)。那部分进行得很顺利,如果我执行 gem -v
,我会得到 1.3.6
,这是预期的。问题是当我尝试执行:sudo gem install rack
时,它返回此错误:
ERROR: While executing gem ... (Errno::EACCES)
Permission denied - /home/username/.gem
通常当我以 root 身份安装 gems 时,它知道将其安装到 /usr/lib/ruby/gems
中,那么它为什么要检查我的主目录?另一个怪癖是当我执行 gem install rack
(不是以 root 身份)时,它说:
ERROR: While executing gem ... (Gem::FilePermissionError)
You don't have write permissions into the /usr/lib/ruby/gems/1.8 directory.
这是我想要它去的地方。我已经尝试清除 source_caches,尝试不同版本的 RubyGems (1.3.5),使用 -i
强制安装到 /usr/lib
无济于事。关于为什么 RubyGems 在以 root 身份安装时如此坚持检查我的 /home
目录有什么想法吗?
最佳答案
听起来可能是路径问题加上安装了多个版本。
输出之间的任何差异:
sudo gem env
和
gem env
关于使用 'sudo' 和不使用 sudo 时出现 RubyGems 安装错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2684810/