Atualizando a fermentação em El Capitan

38

Acabei de atualizar para El Capitane, quando tentei atualizar brew, recebi o seguinte erro:

$ brew update
Error: The /usr/local directory is not writable.
Even if this directory was writable when you installed Homebrew, other
software may change permissions on this directory. Some versions of the
"InstantOn" component of Airfoil are known to do this.

You should probably change the ownership and permissions of /usr/local
back to your user account.
  sudo chown -R $(whoami):admin /usr/local

Antes de prosseguir com a chownrecomendação, dado que El Capitan acabou de sair, é o caminho certo a seguir aqui? Por que essa etapa é necessária e quais são as possíveis conseqüências indesejáveis da execução desse comando?

Em caso de ajuda, eu encontrei duas questões sobre El Capitan em brew: 40837 e 41665 , mas uma solução para este problema não estava imediatamente claro. O que posso fazer para continuar usando brewEl Capitan de maneira confiável?

Amelio Vazquez-Reina
fonte
2
Bem, você fez como a mensagem sugeriu mudar de propriedade /usr/local?
user3439894
Isso levanta uma excelente pergunta para o caso de vários usuários (ou um usuário com várias contas com perfis diferentes) na mesma máquina.
Walt Stoneburner
4
Digitar sudo chown -Rme dá vontade. Não importa quais são os outros parâmetros. Eu tenho mais do que Homebrew /usr/local, e não é um comando obviamente seguro. Confirmei via Time Machine que instalar El Capitan chowned, exclusivamente /usr/local, e não subdiretórios. Eu pude, assim, me safar fazendo uma reversão não recursiva, ie sudo chown $(whoami):admin /usr/local. YMMV.
duozmo
@duozmo está certo. O -Rno sudo chown -Ré realmente pesado entregou. Aquela equivalente a Brew reivindicando domínio sobre a totalidade de/usr/local
HairOfTheDog

Respostas:

31

Quero dizer, eles dão a solução aqui. Eu tive o mesmo problema e acabei de executar:

  sudo chown -R $(whoami):admin /usr/local

e funcionou.

Mostrar nome
fonte
1
+1 Também precisei redefinir as permissões de meu usuário, conforme descrito. Não há mais problemas após esse pequeno ajuste - homebrew e meus pacotes foram muito confiáveis ​​no 10.11.
bmike
22
Isso realmente não responde à pergunta: pode-se supor que a Apple tenha bloqueado / usr / local por um motivo e que essa correção NÃO seja apropriada para El Capitan. Estou pesquisando no Google agora para ver se a Apple fornece alguma orientação. A questão é "... dado que El Capitan acabou de sair, é o caminho certo a seguir aqui?"
Michael Welch
1
@ MichaelWelch A resposta foi publicada antes dessa edição.
DisplayName
1
Desculpe, @DisplayName, eu deveria ter consultado os carimbos de data e hora.
Michael Welch
2
Essa é a resposta correta. Consulte github.com/Homebrew/homebrew/blob/master/share/doc/homebrew/… - Corri $ brew doctore descobri que flacestava faltando uma dependência. Depois $ brew install flactive que correr teimosamente $ brew updatemais algumas vezes.
Ando
9

Não precisamos mais quebrar a cabeça sobre isso. Arrisquei o conselho e fiz a alteração da permissão sugerida. Então, ao atualizar para o homebrew mais recente, recebi esta mensagem tranquilizadora:

O Homebrew não precisa mais ter propriedade de / usr / local. Se desejar, você pode retornar / usr / local à sua propriedade padrão com: sudo chown root: wheel / usr / local

JannieT
fonte
Então, como resolver esse problema?
Rajesh Maurya
@RajeshMaurya use the solution por karolus
JannieT
8

De acordo com algumas das perguntas de segurança acima, a caixa de diálogo fornece instruções para redefinir após uma atualização bem-sucedida de distribuição. Depois de correr

sudo chown -R $(whoami) /usr/local

E depois

brew update

Após a atualização ser executada com êxito, a caixa de diálogo deve indicar o seguinte:

sudo chown root:wheel /usr/local

Após a execução, isso deve aliviar quaisquer preocupações de segurança com o MacOS 10.12

karolus
fonte
chown: / usr / local: Operação não permitida
Rajesh Maurya
6

A solução fornecida não funcionou para mim:

sudo chown -R $(whoami):admin /usr/local

Essa variação funcionou para mim:

sudo chown -R $USER /usr/local/

Brian Spiering
fonte
1
sudo chown -R $ USER / usr / local / trabalhou para mim no macOS mais recente #
Alex Trott
1
chown: / usr / local /: Operação não permitida
Rajesh Maurya
adicionar sudoem seguida, digite a senha raiz
Brian Spiering
1
Ainda chown: / usr / local /: operação não permitida, mesmo que eu digite a senha root.
charlie
0

Eu o corrigo usando este comando sudo chown -R admin /usr/local.

Lee Li
fonte
-1

veja o SIP com:

csrutil status

a proteção de integridade do sistema é fixada em "enable", com o último atributo da Apple 'restrito ":

csrutil 
bigben
fonte
3
Como isso resolve o problema indicado na pergunta?
nohillside
-1

Funcionou para mim.

sudo chgrp -R admin /usr/local
sudo chmod -R g+w /usr/local
Mahfuz
fonte
1
Ambas as soluções não funcionam para mim. Ele ainda mostra: chown: / usr / local: Operação não permitida
2myCharlie
-2

a proteção de integridade do sistema precisa ser desativada. Você pode fazer isso com isso.

sudo nvram boot-args="rootless=0";osascript -e 'tell app "loginwindow" to «event aevtrrst»’

Isso desativa todo o sistema de proteção de integridade do sistema. Eu acredito que você também pode fazê-lo no modo de recuperação. Você ainda precisa digitar sua senha root ao executar tarefas com o sudo, mas não está bloqueado pelo SIP. Você também não abre diretórios inadvertidamente tentando definir permissões.

Harry McGovern
fonte
3
Não há necessidade de desativar o SIP para alterar a propriedade abaixo /usr/local.
nohillside