错误:执行gem时...(Errno :: EPERM)不允许操作

Roy*_*ron 142 ruby macos rubygems compass osx-elcapitan

我刚刚将我的Mac更新为OSX 10.11 El Capitan并且没有留下一些宝石.

当我试图运行不同宝石的安装时出现问题...例如:

> sudo gem install compass
Run Code Online (Sandbox Code Playgroud)

一旦我执行,我得到错误:

> ERROR:  While executing gem ... (Errno::EPERM) Operation not permitted
Run Code Online (Sandbox Code Playgroud)

其他宝石也会发生这种情况......

我已经运行Homebrew并尝试再次安装Ruby,但没有任何工作.

Roy*_*ron 436

我在SASS问题上找到了答案.. https://github.com/sass/sass/issues/1768

显然,对于OSX el Capitan,有一个新的安全功能可以阻止您修改名为Rootless的系统文件.所以你有2个选择:

如果你安装gems就/usr/local/bin没有问题,因为rootless不会影响这个路径.

sudo gem install -n /usr/local/bin GEM_NAME_HERE

  • 以罗伊所说的为基础,[这里](https://github.com/Homebrew/homebrew/blob/master/share/doc/homebrew/El_Capitan_and_Homebrew.md#if-usrlocal-does-not-exist)是一个链接关于这个问题的自制文档,[这里](https://www.reddit.com/r/ruby/comments/3n26gt/upgrade_to_el_capitan_with_homebrew_ruby/)是Reddit的一个链接,详细说明了正确的升级; 也许你可以看到尝试任何东西都会有所帮助. (2认同)
  • 这个解决方案巫婆安装-n/usr/local/bin GEM_NAME_HERE`**对我来说是完美的**(OS X 10.11.1).再次安装sass和指南针,使用此命令很容易.顺便说一句,它似乎是最突出的解决方案.例如,在这里找到:https://github.com/sass/sass/issues/1768而在这里exisiting问题:http://stackoverflow.com/questions/31972968/cant-install-gems-on-os-x- EL-匹 (2认同)

小智 10

由于称为系统完整性保护的新安全功能,您遇到此问题

您可以按照以下步骤禁用SIP:

  1. 通过重新启动计算机并按住Command + R重新启动Mac进入恢复模式,直到屏幕上出现Apple徽标.
  2. 单击实用工具>终端.
  3. 在"终端"窗口中,键入csrutil disable并按Enter键.
  4. 重启你的Mac.

  • 禁用无根是一个坏主意.除非你有充分的理由否则不要.需要安装宝石不是一个好理由. (9认同)