Mac OS X 11以上系统的Rootless机制问题
由于项目紧,系统一直停留在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