你没有写入 /var/lib/gems/1.9.1 目录的权限。

8

我尝试安装所有宝石(gem)的时候,出现了以下错误:

错误: 在执行 gem ... (Gem::FilePermissionError) 时 您没有写入 /var/lib/gems/1.9.1 目录的权限。

注:我在运行Ubuntu 14。

2个回答

16

根据问题描述,为了允许写入/var/lib/gems,需要完成以下几个步骤:

  1. 创建gems用户组(如果不存在),并将自己加入该组:

  2. $ groupadd -f gems
    $ usermod -aG gems $(whoami)
    
  3. 重新进入会话时:

    $ sudo -u $(whoami) bash
    
  4. 允许gems组对/var/lib/gems/目录进行写入,并设置setgid位:

  5. $ chown :gems /var/lib/gems/
    $ chmod g+sw /var/lib/gems/
    
  6. 尝试将gem安装到/var/lib/gems/目录下。

注意: 我强烈建议您通过/控制ruby和gems,将它们保存在本地home文件夹中。请参考答案了解如何正确设置您的项目。


是的,我尝试使用RVM安装Ruby 2.1.5,并成功了。但是当我尝试安装任何gem时,就会卡住。我使用sudo,可以安装我想要的gems,运行bundle install,但是当我运行rails s时,会出现有关gem的错误。 - imtk

1
要么使用sudo运行,如果这样不起作用,请尝试在终端中分别运行sudo chmod +w <file>

好的,如果你信任这个文件的话,那就安装吧。Python需要使用sudo来安装pip的软件包,所以我认为这并不是什么坏事或者不寻常的事情。 - chris
2
如何将Gems安装到主目录中? - imtk

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接