não é possível usar chown / usr / local para homebrew no Mac OS X 10.13 High Sierra

118

O Homebrew precisa de permissões em / usr / local e como ninguém mais usa meu laptop, eu sempre simplesmente fiz

sudo chown -R $(whoami) $(brew --prefix)

mas em High Sierra, isso dá

chown: /usr/local: Operation not permitted

Qual é a solução?

Dan
fonte
Resolvido com: sudo chown -R "$ USER": admin / usr / local / *
Marcelo Campusano

Respostas:

218

O problema continuou ocorrendo ... depois de cavar mais fundo, descobri que apenas desinstalar o Homebrew e reinstalá-lo resolveu o problema.

Desinstalar o Homebrew:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)"

Em seguida, reinstale-o:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Uri Meirav
fonte
4
esta era a única maneira de consertar meu homebrew após a atualização do "High" Sierra. meu erro foi: gh4x-mbpr:~ gh4x$ brew link git Linking /usr/local/Cellar/git/2.15.0... Error: Permission denied @ dir_s_mkdir - /usr/local/lib e sudo chown -R $(whoami) $(brew --prefix)/* não ajudou ...
gh4x
Inacreditável. Falha na primeira vez, o script de desinstalação falhou, a segunda instalação funcionou.
GreenAsJade
Você pode querer salvar a saída de brew listem um arquivo primeiro, para ter um registro de quais pacotes foram instalados.
Giles Gardam
1
Nenhuma das outras várias correções de homebrew do Mojave funcionaria no meu sistema. Desinstalar / reinstalar funcionou perfeitamente.
pkamb de
2
Funciona também com Catalina
Gefilte Fish
52

Infelizmente você não pode mais chown /usr/localem High Sierra. Uma solução alternativa é sudo mkdir /usr/local/includee /usr/local/Frameworksse eles não existirem, e

sudo chown -R $(whoami) $(brew --prefix)/*

Obrigado ao ilovezfs por esta solução simples e pelo incrível homebrew!

Dan
fonte
9
Ainda não funciona. $ brew update Error: O diretório / usr / local não é gravável.
Laurence Cope de
Tente desinstalar e reinstalar o Homebrew: stackoverflow.com/questions/46459152/…
ruggershawn
como comentei em outro lugar, a desinstalação remove TODOS os seus pacotes de cerveja.
Jaydel
$(brew --prefix)deve avaliar /usr/local/, eu acredito.
Jordan Stewart
33

Você não pode alterar a permissão para /usr/localsi mesmo, mas pode alterar a permissão certa para as pastas abaixo, então isso corrigiu o
sudo chown -R $(whoami) /usr/local/*

Reza Farshi
fonte
1
Obter o mesmo problema ainda
Laurence Cope
2
Rodando no MacOS High Sierra. Trabalhou. Obrigado.
Príncipe Odame de
2
Trabalhou para mim em: macOS High Sierra 10.13.6
Gail Parsloe
8

Eu segui isso, mas o problema ainda persiste.
Então, eu reinstalei o homebrew sem desinstalar o anterior. Está funcionando agora!
(Não sei como)

Aayush Gautam
fonte
3
Eu recomendo desinstalar completamente o Homebrew e depois instalá-lo novamente.
k1r8r0wn
Múltiplas instaladas funcionaram, eu não fui capaz de consertar até desinstalar.
cbowns de
desinstalar vai estragar tudo. Tenho muitos pacotes instalados e terei que instalá-los novamente. Infelizmente, tudo isso funcionou anteriormente porque TENHO esses pacotes.
Jaydel
3

Tente desativar a proteção de integridade do sistema . Da documentação:

A proteção da integridade do sistema pode ser configurada usando o comando csrutil (1).

Você pode verificar se a Proteção de Integridade do Sistema está ativada em seu sistema, executando o seguinte comando no Terminal:

$ csrutil status
System Integrity Protection status: enabled.

Para habilitar ou desabilitar a Proteção de Integridade do Sistema, você deve inicializar no Recovery OS e executar o comando csrutil (1) no Terminal.

Inicialize o sistema operacional de recuperação reiniciando sua máquina e mantendo pressionadas as teclas Command e R na inicialização. Inicie o Terminal no menu Utilitários. Digite o seguinte comando: $ csrutil enable

Depois de ativar ou desativar a Proteção de integridade do sistema em uma máquina, é necessário reinicializar.

Elle Mundy
fonte
Embora isso possa teoricamente responder à pergunta, seria preferível incluir as partes essenciais da resposta aqui e fornecer o link para referência.
Jake Symons de
3
Isso é um pouco como remover a proteção de sua serra de mesa. Funciona e pode ser necessário às vezes, mas é mais seguro se você não precisar fazer isso. Definir-se como o proprietário de / usr / local para fazer o homebrew funcionar sempre pareceu um hack de qualquer maneira.
Caleb
3
Isso é altamente desencorajado! É extremamente perigoso, a menos que o usuário não saiba o que está fazendo.
Abu Shumon
@oligofren: D: D: D vamos lá, cara. Relaxe, não é um word in contextconcurso de inglês . : D: D Sinaliza para avisar o usuário. Mas tudo bem, você pega as palavras para mim então: p: p
Abu Shumon
1

se você estiver usando zsh porque veio do bash, pode ser necessário alterar seu $ PATH. você deve adicionar export PATH=$HOME/bin:/usr/local/bin:$PATH .zshrc

então deve funcionar, esse problema resolvido no meu mac desta forma.

zyqbit
fonte
1

Também estou no 10.13 High Sierra. Tentei as sugestões anteriores; nada funcionou. Por fim, tentei primeiro instalar as ferramentas de linha de comando :

xcode-select --install

e depois (re) execute o comando brew install:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

e finalmente funcionou.

Ed Mechem
fonte
0

Certifique-se de que não haja um bloqueio definido na pasta de início ou em qualquer pasta à qual uma instalação precise acessar.

Mesmo se as permissões e propriedade estiverem configuradas corretamente e você estiver atualmente conectado com um usuário correto / ou usuário root, isso não permitirá que você crie novas pastas ou diretórios.

Daniel
fonte
0

Eu não tinha a pasta / user / local / Frameworks, então isso corrigiu para mim

sudo mkdir -p /usr/local/Frameworks
sudo chown -R $(whoami) /usr/local/Frameworks

Eu tenho OSX High Sierra

ap00724
fonte
0

este é Kaushik. Estou usando o MacBook Pro macOS Catalina 10.15.4. Eu criei uma nova conta de administrador, mas brew estava lançando um erro. Por isso, segui um passo deste post. o que funcionou é:

sudo chown -R $ (whoami) $ (brew --prefix) / *

koushik v
fonte