Anos atrás, era possível executar brew
o root como chowning brew
to root, mas eles removeram esse recurso. Portanto, no Homebrew 1.1.6, eu costumava editar /usr/local/Homebrew/Library/Homebrew/brew.sh
para remover a verificação de raiz (a que dizia ser "extremamente perigosa") para poder executar brew
como raiz.
A versão mais recente do Homebrew ainda funciona com isso, mas continua revertendo o brew.sh
arquivo todas as vezes após a execução brew
, mesmo que eu chmod 500
o faça. Eu poderia escrever um script para alterá-lo e executar brew
automaticamente, mas não tenho certeza se isso sempre funcionará e não quero arriscar. Alguém encontrou um método diferente para executar o Homebrew como root?
brew
como root? Além disso,sudo
não é suficiente para seus propósitos?sudo
o executa como root e me dá o mesmo erro "extremamente perigoso". Eu quero rodar como root porque, de outra forma, tem problemas ao instalar certos pacotes, especialmente se alguma coisa foi instalada não através do Homebrew (por exemplo, atravéspip
). Eu segui esse caminho muitas vezes. Além disso, ele não funciona corretamente para vários usuários sem soluções estranhas, a menos que eu instale tudo como root.root
é arriscado. Mesmo construindo um pacote sem um gerenciador de pacotes, você constrói o pacote como um usuário sem privilégios (você mesmo) e depois instala o pacote comoroot
comsudo
. Os gerenciadores de pacotes, como Fink e MacPorts, constroem com seus próprios usuários sem privilégios e depois instalam comoroot
. O Homebrew não possui esse mecanismo.brew.sh
arquivo está sendo revertido após modificá-lo e depois executar umbrew
comando. Para que eu possa corrersudo brew whatever
ebrew whatever
em conjunto muito bem. Minhabrew --version
saída é assim: para suaHomebrew 1.2.1-98-g803f9cbf7b-dirty Homebrew/homebrew-core (git revision d3d6; last commit 2017-05-28)
informação, modifiquei meubrew.sh
arquivo para comentar todas as linhas dacheck-run-command-as-root
função e coloquei uma únicareturn
instrução na parte superior da função.Respostas:
Depois de fazer a alteração no script, tente definir o sinalizador imutável em brew.sh.
Eu não testei. Como regra geral, eu não dou raiz a aplicativos cujos desenvolvedores estão me implorando para não fazê-lo.
fonte
sudo brew install
é executado normalmente.Usuários típicos não devem fazer isso, mas você não é típico, é?
Duas questões:
Você não pode parar a raiz. Se você insistir em usar root, o root poderá sobrescrever,
brew.sh
não importa o quê.Você não pode parar
brew
, afinal, você está falando sobre correrbrew
.Então, vamos trabalhar com isso. Vamos configurar um alias para copiar e
brew.sh
depois executarbrew
.(Corrija os caminhos para corresponder ao seu sistema).
Agora tudo que você precisa fazer é:
(Ele se tornará root, copie
brew.sh
e executebrew
como root com argumentos, depoisbrew
substituirábrew.sh
e você estará pronto para fazer tudo de novo)Nota: Você também pode
sudo
inserir o alias, mas assim fica melhor porque sempre será solicitada uma senha.Normalmente, você não pode usar
setuid
(chmod u+s
) para fazer root em scripts de shell, por segurança. O Perl possui um programa separadosuidperl
que pode ser instalado e pode aumentar o privilégio do usuário, mas essas soluções são um pouco profundas para uma resposta rápida.fonte