10.13版本加强了权限的限制,尤其是对/usr/local目录,默认开通 SIP (System Intergrity Protection),它禁止了软件以root身份在Mac上运行,不管你是在终端中如何运行
$ sudo chown -R $(whoami) /usr/local ,返回给你的就是 chown: Operation not permitted,哪怕你是用root的身份。
有些软件在运行过程中需要对/usr/local下的文件读写,比如你更新ruby,起因是我要通过homebrew来安装zookeeper
brew install zookeeper
运行后下载了zookeeper,但是安装过程中,报了一个ruby的错误(原谅我没有截图),大意是ruby 2.3.0已经不被High Sierra支持了,看样子是要更新ruby
顺序做了一些操作,都没有起什么作用
rvm -v 发现是1.19.3版本最新的已经到1.29.3了
ruby -v 版本是2.3.0,最新已经到2.4.2了
rvm install 2.4.2 也是由于权限问题安装不了
看来只有关掉SIP了
1.重启Mac,按住Command + R键直到Apple Logo出现,进入Recovery Mode模式(我感觉我是按了好半天)
2.点击工具里的Terminal(终端)
3.输入csrutil disable,之后回车
4.重启Mac
5.重启完成后,终端中输入 sudo chflags norestricted /usr/local && sudo chown -R $(whoami):admin /usr/local
成功执行,没有报操作不允许了
(如果想重新开启安全设置,则重复1、2步骤,输入csrutil enable就可以了)
更新rvm工具:curl -L get.rvm.io | bash -s stable
rvm install 2.4.2
(这次可以正确安装ruby了,别问我为什么是2.4.2版本)
然后就是安装zookeeper
brew install zookeeper
(这次也正确安装了)
后来又重启过一次,发现我的mysql不能开机启动了
在系统偏好设置最下方找到MySQL的图标,打开后发现mysql已经停止,且有一行警告:the /usr/local/mysql/data directory is not owned by the 'mysql' or '_mysql' user
这个好办:sudo chown -R mysql /usr/local/mysql/data
然后就可以启动mysql了