Mac OS X 11以上系统的Rootless机制问题

时间:2022-04-09 08:28:09

由于项目紧,系统一直停留在10版本,最近清闲之后,第一件事就是升级了系统,到11El Capitan版本。

本来想着随便升级了,可能有好玩的东东,结果好玩的木有看见,项目开发环境崩溃了,何其衰耶?

废话不说细看崩溃原因在于  已经安装好的compass 和 sass 不翼而飞了,说没有安装。好吧,那劳资大不了重新安装得了,输入命令:

sudo gem install compass

妈蛋啊,告诉我

ERROR: Failed to build gem native extension...... -- mkmf

找了半天原因,重新安装了 ruby,还没好,安装了Xcode, 通过命令行: xcode-select --install

重新安装 sudo gem install compass

结果换了一种message: Operation not permitted 很明显是权限问题,当时就纳闷了,已经用了sudo ,为何还会如此?

原来一切都是 新系统 El Capitan搞得鬼,加入了Rootless机制,至于这个机制有什么作用,请自行百度。

如果不喜欢,可以停用,方法:

重启按住 Command+R,进入恢复模式,打开Terminal。

csrutil disable

重启即可。如果要恢复默认,那么

csrutil enable

除了这个方法之外,我们还可以通过改变安装路径去安装软件
/System
/bin
/sbin
/usr (except /usr/local) 既然不能随意修改,那么就安装到
/usr/local/bin 好了
比如:
sudo gem install -n /usr/local/bin compass
sudo gem install -n /usr/local/bin sass