诉苦
今晚在搭建ruby cucumber环境的时候,发现cucumber安装不上去,起初以为是没有root 操作权限,然而加了sudo命令以后还是不行,还是会提示没有操作权限,如下图所示。
原因
在网上查了资料才知道原来罪魁祸首是Rootless 机制!
苹果从 OS X El Capitan 10.11 系统开始使用了Rootless 机制,可以将该机制理解为一个更高等级的系统的内核保护措施,系统默认将会锁定/system、/sbin、/usr这三个目录。
而cucumber就需要操作 /usr 这个目录。其实对于开发人员来说不仅仅是cucumber,在使用其他开发工具时,也会经常会操作 /usr 这个目录。Rootless 机制虽然给系统增加了安全性,但对开发者来说是一种麻烦。
解决
要解决这类问题,就必须要关闭Rootless了。操作如下,
重启 Mac,一直按 Command+R 键,可以进入恢复模式。在上面的【实用工具】菜单中找到并打开【Terminal/控制台】,输入命令:
csrutil disable
然后,重启就生效了。如果需要再次打开,则执行命令:csrutil enable ,重启就可以了。