Entendendo a filosofia do homebrew 'no-sudo' e questionando o FAQ

4

Tendo uma nova instalação do OS X, decidi instalar o gerenciador de pacotes python de maneira apropriada. Então eu comecei a googling e encontrei homebrew é o melhor caminho. Agora eu tenho duas perguntas:

  • do FAQ do homebrew:

Homebrew is designed to work without using sudo.

No entanto, o script de instalação pede senha. Isso porque o usuário atual recebe permissão para ler, gravar, executar o usr / local ... dirs como membro do grupo do administrador. Assim, em vez de pedir sudo a cada vez, o homebrew pergunta uma vez. No entanto as regras são quebradas desde que você tenha que usar o sudo sim ou sim.

Eu estava com medo de usar o sudo com python ao instalar pacotes. É por isso que decidi por homebrew. Mas não é o mesmo, na verdade?

Se isso for verdade, não é seguro permitir que programas caseiros façam o que quiserem, pois eles têm permissões de root.

  • do FAQ do homebrew:

/usr/local/bin is already in your PATH.

Então, por que preciso

insert the Homebrew directory at the top of your PATH

como é dito no link ?

Comanda o script de instalação do homebrew executado:

/usr/bin/sudo /bin/chmod g+rwx /usr/local/. /usr/local/include /usr/local/lib /usr/local/lib/pkgconfig

/usr/bin/sudo /usr/bin/chgrp admin /usr/local/. /usr/local/include /usr/local/lib /usr/local/lib/pkgconfig
    
por Vito Valov 06.10.2013 / 16:29

2 respostas

2

Whoah, quem disse que os programas instalados têm permissões de root? sudo é usado para dar a permissão você para escrever em diretórios protegidos, para que você possa instalar coisas em pastas do sistema. As permissões de root não são magicamente herdadas pelos programas que você instala. Eles são instalados como todos os programas com as permissões que deveriam ter. A instalação com sudo não elevará as permissões dos arquivos instalados.

Quanto ao $PATH , se o homebrew estiver instalado em /usr/local/bin e já estiver no seu $PATH , você simplesmente não precisará fazer nada.

    
por 06.10.2013 / 16:38
2

Eles dizem para colocar /usr/local/bin/ no topo do seu $PATH para que os programas homebrewed sejam encontrados antes dos do sistema. Por exemplo, se você usar a versão homebrew do python, a do sistema em /usr/bin/python será chamada antes de /usr/local/bin/python , a menos que /usr/local/bin seja anterior /usr/bin em seu $PATH , embora /usr/local/bin já está no seu $PATH .

    
por 09.10.2013 / 10:04