3

似乎只有 root 可以使用 ruby​​ gems (?)

$ gem list

*** LOCAL GEMS ***

$ gem install json
ERROR:  While executing gem ... (Errno::EACCES)
Permission denied - /var/lib/gems/1.9.1

我没有宝石,也无法安装任何...

$ sudo gem install json
[sudo] password for bill: 
Building native extensions.  This could take a while...
Successfully installed json-1.8.0
1 gem installed
Installing ri documentation for json-1.8.0...
Installing RDoc documentation for json-1.8.0...

$ sudo gem list

*** LOCAL GEMS ***

json (1.8.0)                    

Root可以安装和查看gem

$ gem list

*** LOCAL GEMS ***

但是我的用户看不到它们...

有没有办法让非 root 用户在 linux 上使用 gems?

- 解决方案 -

感谢建议我检查 /var/lib/gems/1.9.1 权限的评论

我已经检查过它们,但在途中错过了 /var/lib/gems

/var/lib/gems# ls -al
total 12
drwxr-x---  3 root root 4096 Oct  3 09:13 .
drwxr-xr-x 59 root root 4096 Oct  3 09:13 ..
drwxr-xr-x  6 root root 4096 Oct  3 09:13 1.9.1

chmod o+rx /var/lib/gems/

我现在可以使用已经安装在那里的 gem

4

1 回答 1

1

不,您不应该尝试 rvm 或 rbenv,因为它们都很糟糕。chruby 非常轻量级,是最糟糕的情况。

答案是您应该需要 sudo 来安装系统范围的 gem。将 GEM_HOME 设置为 ~/.gems 或 /path/to/app/.gems 以按用户或按应用程序安装 gem

于 2014-07-17T19:32:52.203 回答