我试图使用gem install mygem或使用gem update——system更新RubyGems安装一个gem,它失败了,错误如下:

ERROR:  While executing gem ... (Gem::FilePermissionError)
You don't have write permissions for the /Library/Ruby/Gems/2.0.0 directory.

有人知道怎么解决这个问题吗?


当前回答

尝试添加——user-install而不是使用sudo:

gem install mygem --user-install

其他回答

该错误的原因是您没有以root用户登录终端。

如果你已经在终端类型的mac上启用了根用户

$ su

如果您没有root用户,您需要使用以下步骤启用它

From the Apple menu choose System Preferences…. From the View menu choose Users & Groups. Click the lock and authenticate as an administrator account. Click Login Options…. Click the “Edit…” or “Join…” button at the bottom right. Click the “Open Directory Utility…” button. Click the lock in the Directory Utility window. Enter an administrator account name and password, then click OK. Choose Enable Root User from the Edit menu. Enter the root password you wish to use in both the Password and Verify fields, then click OK.

更多内容请登录http://support.apple.com/kb/ht1528

在被困了几个小时后,至少它对我有用。

我用它工作。

几年前

你没有写/Library/Ruby/Gems/1.8目录的权限。

也就是说,你没有权限在那里写东西。

这是苹果安装的Ruby版本,供他们自己使用。虽然如果您知道自己在做什么,可以对其进行一些小的修改,因为您不确定权限问题,但我认为继续这样做并不是个好主意。

相反,我强烈建议您考虑使用rbenv或RVM来管理一个单独的Ruby,将其安装到您的主目录中的沙箱中,这样您就可以修改/折叠/主轴/更改,而不必担心会弄乱系统Ruby。

在这两者之间,我使用rbenv,尽管我过去经常使用RVM。rbenv采用了一种更加“不干涉”的方法来管理Ruby安装。RVM有很多特性并且非常强大,但是,结果是更具有侵入性。无论哪种情况,在开始安装之前,都要多阅读几次安装文档。

我的问题是,我之前从zshell切换到bash,没有登录:

/bin/bash --login

虽然我已经安装了rvm,但它无法切换到我新安装的rvm ruby版本,并且仍然试图使用默认的mac安装的ruby二进制。因此我的困惑(用户错误!!)和持续的权限问题…

我找到了这个无苏多尔宝石的指南:

Brew install rbenv ruby-build Sudo gem update—system 向.bashrc添加导出: export RBENV_ROOT="$(brew -prefix rbenv)" export GEM_HOME="$(brew -prefix)/opt/gems" export GEM_PATH="$(brew -prefix)/opt/gems" 最后将这个添加到~/.gemrc中: 宝石:- n / usr /地方/ bin Gem更新——system