不允许操作 - /usr/bin/update_rubygems

yon*_*ang 52 rubygems

当我在osx El Capitan上执行时:

sudo gem update --system  
Run Code Online (Sandbox Code Playgroud)

我收到了错误:

Updating rubygems-update
ERROR:  While executing gem ... (Errno::EPERM)
    Operation not permitted - /usr/bin/update_rubygems
Run Code Online (Sandbox Code Playgroud)

Mar*_*arc 79

最后通过自制软件安装ruby.首先安装自制软件:

http://brew.sh

然后执行

brew install ruby
Run Code Online (Sandbox Code Playgroud)

之后,它完美无缺.它与原生ruby安装有关.


Dan*_*iel 34

如果您在通过Homebrew安装ruby之后遇到安装特定gem的问题(如上所述),请尝试以下操作:

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

在此问题线程上发现这感谢用户内质:https://github.com/sass/sass/issues/1768


Cœu*_*œur 18

从El Capitan开始,Apple /usr/bin出于安全原因阻止用户应用程序进行修改.所以只需在推荐的文件夹中安装/更新rubygems /usr/local/bin:

sudo gem update -n /usr/local/bin --system
Run Code Online (Sandbox Code Playgroud)


rya*_*uen 14

这是10.11的"问题"(Apple称之为功能).基本上,你不能/usr/bin在10.11中修改(甚至不能作为root(sudo su -),还有一些其他文件夹也无法修改).

如果你运行,ls -l /usr/bin你会发现权限是555,或r-xr-xr-x(没有写访问权限).您无法使用更改这些权限chmod.

此功能的名称略有错误:'rootless'.Apple称这是一项安全措施:

https://apple.stackexchange.com/questions/193368/what-is-the-rootless-feature-in-el-capitan-really

您可以使用此要点恢复该功能:

https://gist.github.com/djtech42/7233c602fda912d96fdf

#!/bin/bash
#Beta 4 to Final Public Release (Must be run in Recovery Mode)
csrutil disable

#Beta 1-3
sudo nvram boot-args="rootless=0";sudo reboot
Run Code Online (Sandbox Code Playgroud)

PS有些用户说这不起作用,你必须先启动恢复,就像他们在这里一样:

https://www.macbartender.com/system-item-setup/

我不建议你这样做.最好的解决方案就是ruby通过Homebrew安装(以及几乎任何其他东西),因为你仍然可以写入访问权限/usr/local,直到Apple认为太不安全了...