我有一台运行Ubuntu Hardy的机器,它提供了自己的RubyGems软件包。不幸的是,RubyGems(1.1.1)的版本太旧,无法做任何有用的工作,所以我决定手动将RubyGems更新为当前版本(1.3.6)。这部分进展顺利,如果我做gem -v
,我得到1.3.6
这是预期的。问题是,当我尝试这样做:sudo gem install rack
,它返回此错误:使用'sudo'而不使用sudo时RubyGems安装错误
ERROR: While executing gem ... (Errno::EACCES)
Permission denied - /home/username/.gem
通常当我安装宝石为根,它知道它安装到/usr/lib/ruby/gems
,那么,为什么它在所有检查我的主目录?另一个怪癖是,当我做(不是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),强制安装到/usr/lib
与-i
无济于事。关于为什么RubyGems坚持以root身份安装时检查我的/home
目录的任何想法?
尽管在GEM PATHS部分:'/ usr/lib/ruby/gems/1.8'和'/ home/username/.gem/ruby/1.8',两者没有什么区别。那不应该在sudo中默认存在吗? – 2010-04-22 22:12:52
他们在我的系统上是一样的,但是只有在我重新编译1.9之后,经过并“擦掉”了所有内容后。我检查过的东西: 1.删除了未使用的gem命令(在/ usr/bin和/ usr/local/bin中有一个命令)2.检查了我的〜/ .gemrc文件并清理了指向我的宝石的路径在/ usr/local/lib中使用路径。使用我的〜/ .gem文件夹作为备份。 3.使用.gemrc文件将我的GEM_HOME和GEM_PATH环境变量(在.profile/.bash_profile/.bashrc中)匹配为 。在gem文件夹上检查权限 5.您也可以检查/ etc/gemrc中是否有任何内容 – SundayEdition 2010-04-23 04:12:17
因此,我检查了这些建议,他们似乎都注意到:1)/ usr/bin中只有一个gem可执行文件,2)没有.gemrc,3)我从来没有在我的.profile中设置这些变量,4)gem文件夹对root有权限,sudo应该可以,5)no/etc/gemrc。唯一的其他问题可能是我的主目录存在于AFS的事实上? – 2010-04-23 15:52:26