Posso instalar o Homebrew sem privilégios de sudo?


26

O Homebrew permite agradavelmente instalações de pacotes sem privilégios de sudo, mas parece que eu preciso de privilégios de administrador para instalar o próprio Homebrew.

Gostaria de instalar o Homebrew em um ambiente Mac, onde não tenho privilégios de administrador ou sudo. Isso é possível?

Respostas:


12

Não. A menos que você faça uma cirurgia significativa.

O motivo é que o Homebrew insiste fortemente na instalação de pacotes no /usr/local. De fato, mesmo se você forçar a instalação em outro lugar, é provável que você quebre dependências ao usar os brew installpacotes. A maioria, se não todos, esses pacotes são pré-compilados e vinculados, esperando viver /usr/local.

O motivo dessa insistência é que /usr/localé exatamente onde o POSIX recomenda que coisas como essa sejam instaladas. Para criar, o /usr/localHomebrew precisa de credenciais de administrador temporárias para criar o diretório e atribuir propriedade.

Por sua vez, é isso que permite instalar qualquer outra coisa sem elevar credenciais.


Obrigado, mas acho que você perdeu minha pergunta. Eu sei como e onde ele instala pacotes, mas quero instalar o Homebrew sem administrador ou sudo.
BenjaminGolder

Não perdi sua pergunta. A resposta foi "Não" .. Acabei de dizer "Sim" acidentalmente. Você não pode fazer facilmente o que está solicitando e, mesmo que o tenha forçado, editando o instalador do Homebrew para colocar as coisas em uma ramificação do diretório inicial, mais do que provavelmente muitas cervejas falhariam após a instalação.
David Hoelzer

ok obrigada Fiquei confuso com o "Sim" anterior.
BenjaminGolder

3
Isso está errado, ou pelo menos a definição de "cirurgia significativa" é muito diferente da minha. Estou executando brewum prefixo definido no meu diretório pessoal há mais de 5 anos e encontrei 1 ou 2 pacotes quebrados nesse período.
James McMahon

No entanto, também há isso, que é difícil de contornar: Erro: você não concordou com a licença do Xcode. Resolva isso executando: sudo xcodebuild -license accept
Albert

17

Sim.

Modifiquei o script de instalação para não usar sudoe usar um diretório de sua escolha. https://gist.github.com/skyl/36563a5be809e54dc139

Faça o download disso, definido YOUR_HOMEno script para o caminho absoluto. chmod +xo script. Crie o YOUR_HOME/usr/localdiretório Em seguida, execute o script.

./install.rb

Em .bash_profile, eu defino (não sei se isso é importante, com certeza):

export HOMEBREW_PREFIX=/The/path/to/YOUR_HOME/usr/local

Agora eu posso:

brew install wget

Verifique se o bindiretório YOUR_HOME+ /usr/local/binestá no seu $PATH.

which wget

1
No script de instalação, eu tive que adicionar #{YOUR_HOME}prefixo à HOMEBREW_CACHEvariável também. Isso, e porque o administrador do sistema já havia homebrew instalado, eu tive que adicionar export PATH=/path/to/home/usr/local/bin:$PATHao .bash_profilebem. Mas com tudo isso, parece funcionar muito bem.
golmschenk

3
Acabei de passar pelo processo novamente e gostaria de mencionar que você também precisa criar um usrdiretório em seu diretório pessoal antes que o script seja executado. Além disso, quando você adiciona #{YOUR_HOME}à HOMEBREW_CACHEvariável, parece que você precisa alterar as aspas simples para aspas duplas para que funcione. Portanto, existem algumas etapas, mas definitivamente vale a pena obter o poder da Homebrew.
golmschenk

As aspas duplas @golmschenk são necessárias para que a formatação de string do ruby ​​seja ativada, acredito.
Skylar Saveland

1
Esse é um bom ajuste. Você realmente deve enviar uma solicitação de recebimento para o projeto de fabricação caseira.
David Hoelzer 5/12/15

1
Eu tentei isso de uma conta de não administrador no macOS Sierra (10.12.3) e não funcionou porque precisava fazer um chgrp admin /usr/locale uma conta de não administrador não é membro do grupo de administradores, portanto, pode ' Não mude nada para esse grupo. Seria ótimo se isso pudesse funcionar para uma conta normal de não administrador (não apenas para contas de administrador que, por algum motivo estranho, foram bloqueadas no sudo).
Spiff

0

Sim.

O sistema de distribuição parece inicializável

#!/bin/bash
set -ex

export HOMEBREW_PREFIX=~/homebrew
# export HOMEBREW_NO_ANALYTICS=1
mkdir -p "${HOMEBREW_PREFIX}"
curl -fsSLk https://github.com/Homebrew/brew/tarball/master | tar xz --strip 1 -C "${HOMEBREW_PREFIX}"

ls -laR "${HOMEBREW_PREFIX}"

export PATH="${HOMEBREW_PREFIX}/bin:${PATH}"
type -a brew

type -a openssl || :
openssl version -a || :

type -a curl || :
curl -V || :

# Fails to lock a .git/config file.
##brew analytics off

# No "brew update" until installing the proper openssl and a curl that uses it.
# brew update

# brew remove openssl || :
brew install openssl
brew link --force openssl

# brew remove curl || :
brew install --with-openssl curl
brew link --force curl || :
curl -V

ls -la "${HOMEBREW_PREFIX}/opt"
ls -la "${HOMEBREW_PREFIX}/bin"
ls -laLR "${HOMEBREW_PREFIX}/opt/curl/"

0

Para instalar o homebrew sem o sudo .

git clone https://github.com/mxcl/homebrew.git
echo 'export PATH="/path/to/cloned_folder/homebrew/bin:$PATH"' >> ~/.bash_profile

Reinicie o terminal e execute

brew --version

0

Brew moveu seu repositório Git, e é por isso que o descrito acima não funciona mais.

git clone git@github.com:Homebrew/brew.git
echo 'export PATH="/path/to/cloned_folder/homebrew/bin:$PATH"' >> ~/.bash_profile

1
Com 'acima', você quer dizer a resposta de Astik Anand ? Nem sempre estará "acima" da sua resposta. Se algo em sua resposta precisar ser alterado, edite você mesmo.
nekomatic 12/09
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.