Estou usando o Homebrew para gerenciar instalações de pacotes no Lion (Lion Server, na verdade, mas isso não deve importar) .
O Homebrew foi instalado sob um usuário. Agora, um usuário diferente gostaria de adicionar um pacote e o Homebrew não está feliz:
$ brew update
fatal: Unable to create '/usr/local/.git/index.lock': Permission denied
Error: Failure while executing: git checkout -q master
Isso é considerado ruim? Eu pensei que uma das vantagens de usar /usr/local/
para suas instalações era que você não precisa sudo
. Mas claramente o fazemos.
Todos os usuários que precisariam modificar o Homebrew são membros do grupo de administradores . Então, eu poderia, chmod -R g+w /usr/local/
mas com medo de que isso funcione ou crie problemas de segurança?!?
Conselhos?
$ ls -al /usr/local/.git/
total 432
drwxr-xr-x 14 ladmin admin 476 Feb 24 11:48 .
drwxrwxr-x 14 root admin 476 Feb 9 15:27 ..
-rw-r--r-- 1 ladmin admin 94 Feb 24 11:48 FETCH_HEAD
-rw-r--r-- 1 ladmin admin 23 Feb 24 11:48 HEAD
-rw-r--r-- 1 ladmin admin 41 Feb 9 15:28 ORIG_HEAD
drwxr-xr-x 2 ladmin admin 68 Feb 9 15:27 branches
-rw-r--r-- 1 ladmin admin 218 Feb 9 15:27 config
-rw-r--r-- 1 ladmin admin 73 Feb 9 15:27 description
drwxr-xr-x 12 ladmin admin 408 Feb 9 15:27 hooks
-rw-r--r-- 1 ladmin admin 200272 Feb 24 11:48 index
drwxr-xr-x 3 ladmin admin 102 Feb 9 15:27 info
drwxr-xr-x 4 ladmin admin 136 Feb 9 15:27 logs
drwxr-xr-x 4 ladmin admin 136 Feb 9 15:27 objects
drwxr-xr-x 5 ladmin admin 170 Feb 9 15:27 refs
fonte
brew doctor
ainda reclama que, por exemplo,/usr/local/include
não é gravável, embora eu possa verificar manualmente se posso gravar em um arquivo aqui (por exemplo, usandoecho "hello" > /usr/local/include/testfile
). Eu sou membro do grupo de administradores. Alguma idéia para depuração?chmod -R g+w /Library/Caches/Homebrew
sudo chown -R $(whoami) $(brew --prefix)/*
vez dos comandos acima. Entendi a partir daquiVocê pode habilitar permissões de homebrew para mais de um usuário por meio do grupo de administradores ou de qualquer outro grupo de usuários. Aqui está uma receita ligeiramente expandida para configurar isso:
O grupo precisa administrar o diretório de instalação local do homebrew. Portanto, atribua / usr / local ao grupo de administradores (ou seu grupo preferido) e ative as permissões de gravação do grupo:
O grupo também precisa de permissões para o cache local de fórmulas e arquivos de origem do homebrew em / Library / Caches / Homebrew :
Se você se deparar com outros problemas de permissões semelhantes ao usar o homebrew de várias contas, observe o caminho incorreto e considere tentar a mesma abordagem.
Leif Hanack tem blogou uma solução semelhante , onde ele cria e configura um grupo de usuários dedicados cerveja para o efeito.
--Atualização 20/08/2015
Recentemente, usei essa resposta novamente para configurar uma conta de convidado com acesso ao homebrew. Para usar o Cask da segunda conta de administrador, também tive que executar os seguintes comandos:
fonte
Eu só ia comentar a resposta aceita (mas ainda não tenho a reputação disso).
Como usuário do Caskroom.io , eu também recomendaria adicionar:
desde que o cask, uma extensão extremamente útil para o homebrew, coloca todos os seus arquivos em
/opt/homebrew-cask
fonte
/opt
que eu acho que você quer dizer/usr/local
? Como/opt
não existe nas instalações recentes do OS X, mesmo após a instalação do homebrew./usr/local
(ou com mais precisão$(brew --prefix)
) de,/opt/homebrew-cask
portanto, essa resposta agora é discutível, mas era válida quando foi escrita. Consulte Mover o local padrão do depósitoVocê precisa dar permissão para o caminho. execute isso na linha de comando e você estará bem. Funcionou para mim:
sudo chown -R $ USER / usr / local
fonte
Eu votaria na definição da permissão do grupo - e para mim parece que é justamente para isso que existe e não deve criar um problema de segurança.
fonte
sudo chmod -R g+w /usr/local/
?