Acabei de atualizar o Snow Leopard para o Lion e estou tentando instalar o Homebrew. No entanto, após a instalação, eu executo de brew doctor
acordo com as instruções de instalação e vejo uma série de erros indicando que os diretórios / usr / local não são graváveis. Por exemplo:
Error: /usr/local/share isn't writable.
This can happen if you "sudo make install" software that isn't managed
by Homebrew.
If a brew tries to write a file to this directory, the install will
fail during the link step.
You should probably `chown` /usr/local/share
Eu os recebo para vários diretórios:
You should probably `chown` /usr/local/include
You should probably `chown` /usr/local/share
You should probably `chown` /usr/local/share/man
Não consigo descobrir por que esse erro está chegando, pois parece que faço parte do grupo Unix que possui permissões de gravação para esses diretórios:
Mini:~ felciano$ ls -ld /usr/local/share
drwxrwxr-x 4 root admin 136 May 13 15:53 /usr/local/share
Mini:~ felciano$ whoami
felciano
Mini:~ felciano$ dscl . -read /Groups/admin GroupMembership
GroupMembership: root felciano
Mini:~ felciano$
o que estou perdendo?
/usr/local
deveria pertencer a mim quando esta máquina possui vários usuários administrativos. Além disso, é possível escrever para os locais quebrew doctor
estão reclamando. Alguma outra ideia?Respostas:
EDIT: O problema agora está corrigido no Homebrew:
Se o problema persistir, atualize o Homebrew da seguinte forma:
Se você quiser saber qual era o problema, guardei minha resposta original abaixo.
Ignore o problema de permissão por enquanto
Estou enfrentando exatamente o mesmo problema e, na minha opinião, o problema está em
brew doctor
vez de na sua instalação e na minha.Eu acho que você deve ignorar o problema, em vez de mudar a propriedade
/usr/local
. Como alternativa, você pode corrigir obrew doctor
script local até que uma correção seja lançada. Ver abaixo.Não considero correto
/usr/local
pertencer a um usuário específico. Eu tenho mais de um usuário administrador nesta máquina. Você deve deixar/usr/local
pertencer aroot:admin
como proprietário e grupo.Minha investigação
Como para você, eu tenho um
/usr/local
que é perfeitamente gravável pelo meu usuário, que também é membro doadmin
grupo:Vamos testar se o dir é realmente gravável:
Uma investigação mais aprofundada sobre o
brew doctor
código levou-me à conclusão de que o uso da função rubyPathname.writable?
está causando o problema. Considere esta sessão interativa do Ruby:A função
Pathname.writable?
diz que/usr/local
não é gravável, mesmo sabendo que é.Usar, ao
Pathname.writable_real?
contrário, fornece o resultado correto - ele diz que o dir é gravável:Isso deve ser corrigido
/usr/local/Library/Homebrew/cmd/doctor.rb
. Você pode corrigi-lo em sua própria instalação enquanto aguarda uma correção.A diferença entre as duas funções é (de acordo com os documentos Ruby aqui e aqui ):
gravável? (nome_do_arquivo) → verdadeiro ou falso: Retorna verdadeiro se o arquivo nomeado for gravável pelo ID do usuário efetivo desse processo.
writable_real? (nome_do_arquivo) → verdadeiro ou falso: Retorna verdadeiro se o arquivo nomeado for gravável pelo ID do usuário real desse processo.
fonte
writable_real?
... talvez seja hora de uma solicitação de recebimento?!? :-)Eu acredito que você só precisa disso:
brew update
Então tente
brew doctor
novamente.Você ainda pode receber erros sobre quaisquer dependências que não estiver usando (Java no meu caso), o que está correto. Se você tiver as Ferramentas de Linha de Comando do Xcode instaladas em vez da instalação completa do Xcode, também receberá uma mensagem de erro informando que possui um caminho inválido, mas, na mensagem, você também lerá que não há caminho válido se estiver apenas usando as ferramentas de linha de comando do Xcode, tudo bem também.
Para benefício de outras pessoas: lembre-se de que você precisa estar logado como administrador ao fazer isso para que funcione.
fonte
Segui uma combinação das sugestões de iolsmit e Phil M: coloquei esses diretórios em meu nome de usuário e depois corri
brew update
novamente, seguido porbrew doctor
. Isso eliminou todas as mensagens de erro e as instalações de distribuição agora parecem funcionar bem. Obrigado a ambos!fonte
Polegares para cima para investigação e esclarecimento de @ mgd ... está no local!
Parece que um problema semelhante foi levantado no github.com cerca de um ano atrás, mas nunca foi (adequadamente?) Resolvido, pelo menos não usando
writable_real?
... talvez seja hora de uma solicitação de recebimento?!? :-)fonte