2016-10-23 3 views
1

Так что я немного нуб терминала так, медведь со мной, но я пытался обновить настояться, чтобы установить что-то, так что я побежал: brew update и получил Error: /usr/local must be writable!sudo: эффективный uid не 0, sudo установлен setuid root? (На Mac OS X 10,12)

не был на самом деле уверен, что это было около поэтому я попытался запустить 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 (с помощью Disk Utility и работает по оказанию первой помощи), но я т не оказал никакого эффекта ....

Может ли кто-нибудь сказать мне, что происходит и что мне нужно делать?

ответ

0

Если запустить ls -la /usr, результат, скорее всего, будет что-то вроде ниже:

total 0 [email protected] 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

Который, я думаю, объясняет, что произошло в первую очередь.

Надеюсь, что это поможет.