Durante a instalação tig
, HomeBrew
está exibindo os seguintes problemas ao instalar uma dependência:
Error: The `brew link` step did not complete successfully
The formula built, but is not symlinked into /usr/local
Could not symlink bin/a2x
/usr/local/bin is not writable.
You can try again using:
brew link asciidoc
Respostas:
Após a resposta de Alex, consegui resolver esse problema; Parece que esse é um problema não específico dos pacotes que estão sendo instalados, mas das permissões das
homebrew
pastas.Para alguns pacotes, você também pode fazer isso em
/usr/local/share
ou/usr/local/opt
:fonte
sudo chown -R
Whoami não:admin /usr/local/bin
seria equivalente ao comando na resposta, sem a necessidade de substituiryourusename
por seu nome de usuário real?usr/local/opt
recursivamente. Funcionou depois disso./usr/local/bin
(e amigos) parecem reverter paradrwxr-xr-x+
eroot wheel
todos os dias. Devo reconfigurar as permissões sempre que eu quiserbrew install
. Presumo que o sistema operacional está redefinindo permissões permanentes para me proteger? Como posso fazer isso parar? (Eu tenteichflags uchg …
, mas que impede preparar a instalação.)Em vez de executar qualquer comando específico, eu recomendaria executar
brew doctor
e levar todos os avisos a sério. Pode haver outros problemas nos quais você não consegue capturar nesta pergunta.Além disso, à medida que a distribuição é atualizada com o tempo, comandos específicos podem ou não permanecer válidos.
brew doctor
, no entanto, garantirá que você atualize a solução de problemas.fonte
brew doctor
não vai resolver o problema, ele apenas informa sobre o problema e, quando você segue o conselho do médico, o brew diz que não pode fazê-lo. Isso não é uma soluçãoAs outras respostas estão corretas, na medida em que avançam, mas não respondem por que esse problema pode estar ocorrendo e como solucionar essa causa raiz.
Causa
Existem duas causas possíveis para esse problema:
brew doctor
sugerida, se você a executar.Solução
Homebrew multiusuário
Se você possui várias contas de usuário e deseja que mais de uma delas possa usar o brew, é necessário executar algumas etapas; caso contrário, será necessário alterar constantemente a propriedade da estrutura de arquivos do Homebrew sempre que mudar de usuário, e isso não é uma ótima ideia.
Instruções detalhadas podem ser encontradas online , mas a resposta rápida é a seguinte:
Crie um grupo chamado brew:
sudo chgrp -R brew /usr/local
sudo chmod -R g+w /usr/local
sudo chgrp -R brew /Library/Caches/Homebrew
sudo chmod -R g+w /Library/Caches/Homebrew
Homebrew de usuário único
Se você não está tentando usar mais de um usuário com o Homebrew, a solução fornecida pelas outras respostas, com base nas sugestões de,
brew doctor
provavelmente é suficiente:sudo chown -R $(whoami) /usr/local
sudo chown -R $(whoami) /Library/Caches/Homebrew
Verificação
Após estes passos,
brew doctor
deve reportar o sucesso por qualquer usuário na bebida grupo, supondo que você tenha desconectado e volta para aplicar as novas adesões do grupo (se você foi a rota multiusuário). Se você acabou de corrigir as coisas para o homebrew de usuário único, não será necessário fazer logoff e logon novamente, pois nenhuma das associações do seu grupo foi alterada.fonte
/usr/local/bin
grupo-gravável, esp. em um ambiente multiusuário. Essa é realmente a forma "oficial" de fermentação?Para quem está procurando
/usr/local/sbin
não é um erro gravável:ATUALIZAÇÃO: Pode ser
/usr/local/someOtherFolderName
por exemplo/usr/local/include
. Você só precisa criar essa pasta com:sudo mkdir someOtherFolderName
Primeiro crie a
sbin
pasta, observe que isso requersudo
privilégioscd /usr/local
sudo mkdir sbin
sudo chown -R $(whoami) $(brew --prefix)/*
brew link yourPackageName
fonte
PATH=$PATH:/usr/local/sbin
Encontrei para minha configuração específica os seguintes comandos funcionaram
E então isso me mostrou onde estavam meus erros, e esse comando um pouco diferente do comentário acima.
fonte
brew doctor
brew doctor
é bom.Encontrei o mesmo problema, podemos resolver em três etapas: -
Passo 1
Passo 2
etapa 3
Se você ainda tiver algum problema de conexão, digamos
mysql
, basta escreverIsso vai funcionar.
fonte
Para aqueles que enfrentam esse problema (concedidos quatro anos após a publicação desta postagem) enquanto executavam o Mac OS High Sierra - as etapas descritas aqui resolveram o problema para mim. Essencialmente, apenas descreve a desinstalação e reinstalação do brew.
https://medium.com/@mrkdsgn/brew-error-on-macos-high-sierra-check-you-have-permission-to-write-to-usr-local-e8bd1c6a22d4
Depois de executar essas etapas,
brew link
funcionou como um encanto!fonte
Para mim, a solução era correr
brew update
.Então, faça isso primeiro.
Isso pode ser uma prática normal para pessoas familiarizadas com o homebrew, mas eu não sou uma dessas pessoas.
Editar: descobri que precisava atualizar executando,
brew doctor
conforme sugerido pela resposta de @ kinnth para essa mesma pergunta.Um fluxo de trabalho de solução de problemas geral pode ser assim: 1. execute
brew update
2. se isso não ajudar a executarbrew doctor
e siga suas instruções 3. se isso não ajudar a verificar o estouro da pilhafonte
Ao fazer o nó de link de fabricação Além disso, também tenho os seguintes problemas:
Erro: não foi possível escrever o link simbólico / node / usr / local / include não é gravável.
Vinculando /usr/local/Cellar/node/9.3.0 ... Erro: permissão negada @ dir_s_mkdir - / usr / local / lib
Para resolver o problema acima, vá para / usr / local / e verifique a disponibilidade das pastas 'include' e 'lib', se essas pastas não estiverem disponíveis, apenas crie-as manualmente.
E execute o nó de instalação de fermentação novamente
fonte
Isso ocorre porque o usuário atual não tem permissão para escrever nesse caminho. Portanto, para alterar as permissões de r / w (leitura / gravação), você pode usar o 1. terminal ou a janela gráfica "Get Info".
1. Usando o Terminal
Google como usar os comandos chmod / chown (alterar modo / alterar proprietário) do terminal
2. Usando 'Get Info' gráfico
Você pode clicar com o botão direito do mouse na pasta / arquivo do qual deseja alterar as permissões e abrir Obter informações, que mostrará uma janela como abaixo, na parte inferior da qual você pode alterar facilmente as permissões de r / w:
Lembre-se de alterar a permissão novamente para "somente leitura" após o trabalho temporário, se possível
fonte
Eu achei o seguinte relevante para usuários do Sophos Anti-Virus:
https://stackoverflow.com/a/32981184
https://community.sophos.com/products/free-antivirus-tools-for-desktops/f/17/t/10029
Em resumo, o Sophos está alterando as permissões de determinados diretórios / usr / local. O Sophos corrigiu isso e a correção está incluída na versão 9.4.1.
fonte
Meu problema foi
chown
não ajudou, mas segui osbrew doctor
conselhos de execução e esse aviso me ajudou:Afinal
brew prune
funcionou bem!fonte
Para aqueles que não são familiares:
fonte
Se você for para a pasta no localizador, clique com o botão direito do mouse e selecione "Obter informações", vá para a seção "Compartilhamento e permissões" da pasta e permita "Leitura e gravação" para "todos"
É isso que faço para fazer com que os links simbólicos passem com esse erro. O brew também parece redefinir as permissões na pasta também como se você não tivesse alterado nada
fonte
Se você já possui um diretório
/usr/local
para o pacote que está instalando, tente excluir esse diretório.No meu caso, eu havia instalado o pacote que estava tentando instalar sem usar o brew e depois o desinstalado. Havia um diretório
/usr/local/<my_package>/
remanescente daquela instalação anterior. Excluí esta pasta (sudo rm -rf /usr/local/<my_package>/
) e depois disso a etapa do link de preparação foi bem-sucedida.fonte