Eu uso homebrew
como gerenciador de pacotes em determinados aplicativos de desenvolvimento da web. Para me manter brew
atualizado, corro a update brew
cada dois dias e também corro brew doctor
. Normalmente, isso é bom e brew
me diz que estou pronto para preparar.
De vez em quando, no entanto, recebo o seguinte erro:
Aviso: / usr / local / etc não é gravável.
Isso pode acontecer se você "sudo make install" software que não é gerenciado pelo Homebrew. Se uma fórmula tentar gravar um arquivo nesse diretório, a instalação falhará durante a etapa do link.
Você provavelmente deveria
chown
/ usr / local / etcAviso: O diretório / usr / local não é gravável. Mesmo que este diretório tenha sido gravável quando você instalou o Homebrew, outro software pode alterar as permissões nesse diretório. Algumas versões do componente "InstantOn" do Airfoil são conhecidas por fazer isso.
Você provavelmente deve alterar a propriedade e as permissões de / usr / local de volta para sua conta de usuário.
É fácil o suficiente redefinir as permissões novamente para o meu nome de usuário. Depois brew
parece estar bem.
Mas o que está causando isso?
Existe um log que mostra o que está causando alterações nas permissões?
fonte
/usr/local
. Mas se você insistir, poderá fazê-lomake install
sem usar ossudo
pacotes que você instala./usr/local
?Respostas:
Eu tive exatamente o mesmo problema, e a atualização automática da Sophos foi a culpada. Eu descobri isso executando:
sudo fs_usage | grep "usr/local"
Demorou um pouco, mas, eventualmente, vi o daemon "Installation", útil da Sophos, mexendo nas permissões de / usr / local.
Ainda estou tentando descobrir uma solução apropriada para esse comportamento.
EDIT: Acredito que a Sophos tenha corrigido esse problema, consulte o link nos comentários desta resposta. Parece estar consertado para mim, pelo menos!
fonte
Acontece que o Filewave é o culpado. O Filewave é um software de gerenciamento de sistema usado por nossa escola para enviar atualizações de software. Obrigado pela contribuição.
fonte
Eu tenho apenas uma idéia aproximada de como obter o ladrão de permissão. Esta não é uma solução para o seu problema, mas mais algum tipo de solução alternativa.
Que tal escrever um watchdog no Automator ou com Hazel (ações da pasta) para assistir a essa pasta específica, mas em vez de adicionar uma função como Escala de imagens, você apenas usa um shellscript que executa vários comandos do shell:
fuser <foldername>
.ps auxwwwwww | grep <process id>
) e finalmenteInfelizmente, não sou sadhu do Automator, mas descobri pelo Google que existem muitas soluções para um problema semelhante.
fonte
Se você usar o Time Machine, poderá encontrar o tempo aproximado em que as permissões foram alteradas, explorando
Backups.backupdb
no Terminal. Usels -ld
nas pastas com registro de data e hora, por exemploO qual mostrará as informações do proprietário e do grupo.
Depois de ter a data em que a alteração ocorreu, você poderá descobrir o que mais poderia ter mudado no seu sistema. Uma técnica simples é usar o Arquivo do Finder ›Localizar e adicionar um
Last modified date
critério. Outras boas ferramentas estãofind
emdfind
no Terminal.fonte
Este é um efeito colateral da atualização do seu sistema; O OS X provavelmente faz algum reparo geral de permissão durante o processo de atualização, já que / usr / local está aninhado em uma pasta de propriedade da raiz.
fonte
Você usou
Disk Utility
selectMacintosh HD
, runVerify Disk Permission
e,Repair Disk Permission
se necessário, em vez de fazê-lo manualmente?Agora, isso não deve ser corrigido no seu problema, mas é um bom ponto de partida "conhecido" para ver quando a mistura caseira altera as permissões. Pode aparecer o problema subjacente, se você tiver sorte.
Também
new update -v
há mais detalhado de saída, além de logs antigos aqui~/Library/Logs/Homebrew
como por Onde é que log homebrew?fonte
Disk Utility
não verificaria nem repararia permissões,/usr/local
pois esse diretório não existe em uma nova instalação do Yosemite./usr/local
pertencente a mim e executandoDU
. Não há nenhum/usr/local
noDU
log. E/usr/local
ainda me pertence.