所以我有点像一个终端菜鸟,所以请耐心等待,但我正在尝试更新brew以安装一些东西,所以我跑了:brew update
并得到了Error: /usr/local must be writable!
我真的不确定那是什么,所以我尝试了sudo brew update
并获得了sudo: effective uid is not 0, is sudo installed setuid root?
不确定这是否有帮助,但正在运行ls -l $(which sudo)
给了我:
ls: is: No such file or directory
ls: is: No such file or directory
ls: is: No such file or directory
ls: is: No such file or directory
ls: sudo: No such file or directory
ls: sudo: No such file or directory
ls: sudo: No such file or directory
ls: sudo: No such file or directory
-r-s--x--x 1 root wheel 369136 Sep 13 20:56 /usr/bin/sudo
-r-s--x--x 1 my_profile admin 168448 Jan 13 2016 /usr/local/bin/sudo
-r-s--x--x 1 my_profile admin 168448 Jan 13 2016 /usr/local/bin/sudo
-r-s--x--x 1 my_profile admin 168448 Jan 13 2016 /usr/local/bin/sudo
我尝试了建议here(使用“磁盘工具”并运行急救),但似乎没有任何效果....
谁能告诉我发生了什么以及我需要做什么?
答案 0 :(得分:0)
如果您运行ls -la /usr
,结果很可能如下所示:
total 0
drwxr-xr-x@ 11 root wheel 374 Oct 14 14:35 .
drwxr-xr-x 32 root wheel 1156 Oct 26 09:49 ..
drwxr-xr-x 19 root wheel 646 Oct 10 18:51 local
... (some other files and directories)
现在从上面可以明显看出,除非您以root
身份登录,或者您的用户位于wheel
群组(很可能不是),否则您发出的任何命令与您的用户需要写入权限(例如brew update
)将失败。
其中一个可能的解决方案(我并不认为是最好的解决方案)是更改/usr/local
的权限。
像这样:
sudo chown -R $(whoami) /usr/local
有趣的是,如果你再运行
brew update
一切顺利,您收到以下消息:
=> Migrating HOMEBREW_REPOSITORY (please wait)...
==> Migrated HOMEBREW_REPOSITORY to /usr/local/Homebrew!
Homebrew no longer needs to have ownership of /usr/local. If you wish you can
return /usr/local to its default ownership with:
sudo chown root:wheel /usr/local
我猜这首先解释了发生了什么。
希望有所帮助。