Czy mogę zainstalować Homebrew bez uprawnień sudo?

26

Homebrew ładnie pozwala na instalowanie pakietów bez uprawnień sudo, ale wydaje się, że potrzebuję uprawnień administratora, aby sam zainstalować Homebrew.

Chciałbym zainstalować Homebrew w środowisku Mac, gdzie nie mam uprawnień sudo ani uprawnień administratora. czy to możliwe?

BenjaminGolder
źródło

Odpowiedzi:

12

Nie .. Chyba że wykonasz poważną operację.

Powodem jest to, że Homebrew zdecydowanie nalega na instalację pakietów w /usr/local. W rzeczywistości, nawet jeśli zmusisz go do zainstalowania w innym miejscu, prawdopodobnie zerwiesz zależności podczas brew installinstalowania pakietów. Większość, jeśli nie wszystkie z tych pakietów, są wstępnie skompilowane i połączone z założeniem, że będą dostępne /usr/local.

Powodem tego nalegania jest to, że /usr/localwłaśnie tam POSIX zaleca instalowanie takich rzeczy. Aby utworzyć /usr/localHomebrew, potrzebne są tymczasowe poświadczenia administratora, aby utworzyć katalog i przypisać własność.

To z kolei umożliwia zainstalowanie czegokolwiek innego bez podnoszenia poświadczeń.

David Hoelzer
źródło
Dzięki, ale myślę, że przegapiłeś moje pytanie. Wiem jak i gdzie instaluje pakiety, ale chcę zainstalować Homebrew bez administratora lub sudo.
BenjaminGolder
Nie przegapiłem twojego pytania. Odpowiedź brzmiała „Nie”. Powiedziałem przypadkowo „Tak”. Nie możesz łatwo zrobić tego, o co prosisz, a nawet jeśli zmusiłeś to, edytując instalator Homebrew, aby umieścić rzeczy w gałęzi poza twoim katalogiem domowym, bardziej niż prawdopodobne, że wiele browarów ulegnie awarii po instalacji.
David Hoelzer
ok, dzięki. Byłem zdezorientowany poprzednim „Tak”.
BenjaminGolder
3
To jest po prostu błędne, a przynajmniej twoja definicja „znaczącej operacji” jest zupełnie inna niż moja. Działam brewz ustawionym prefiksem w moim katalogu domowym od ponad 5 lat i napotkałem w tym czasie 1 lub 2 uszkodzone pakiety.
James McMahon
Jednak jest też coś, co trudno obejść: Błąd: Nie zgodziłeś się na licencję Xcode. Proszę rozwiązać ten problem, uruchamiając: sudo xcodebuild -license accept
Albert
17

Tak.

Zmodyfikowałem skrypt instalacyjny, aby nie używał sudoi nie używał wybranego katalogu. https://gist.github.com/skyl/36563a5be809e54dc139

Pobierz to, ustaw YOUR_HOMEw skrypcie ścieżkę bezwzględną. chmod +xscenariusz. Utwórz YOUR_HOME/usr/localkatalog. Następnie uruchom skrypt.

./install.rb

W .bash_profileustawiam (nie jestem pewien, czy to ważne, jestem całkiem pewien):

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

Teraz mogę:

brew install wget

Upewnij się, że binkatalog YOUR_HOME+ /usr/local/binjest w twoim $PATH.

which wget
Skylar Saveland
źródło
1
W skrypcie instalacyjnym musiałem również dodać #{YOUR_HOME}prefiks do HOMEBREW_CACHEzmiennej. To, a ponieważ administrator systemu już homebrew zainstalowany, musiałem dodać export PATH=/path/to/home/usr/local/bin:$PATHdo .bash_profilejak również. Ale mimo wszystko wydaje się, że działa świetnie.
golmschenk
3
Właśnie przeszedłem ten proces ponownie i chciałem tylko wspomnieć, że usrprzed uruchomieniem skryptu musisz także utworzyć katalog w swoim katalogu domowym. Dodatkowo po dodaniu #{YOUR_HOME}do HOMEBREW_CACHEzmiennej wydaje się, że musisz zmienić pojedyncze cudzysłowy na podwójne cudzysłowy, aby działała. Jest więc kilka kroków, ale zdecydowanie warto zdobyć moc Homebrew.
golmschenk
Wydaje mi się, że @golmschenk podwójne cytaty są wymagane do formatowania napisów Ruby.
Skylar Saveland
1
To niezła korekta. Naprawdę powinieneś złożyć wniosek o wycofanie do projektu domowego piwa.
David Hoelzer,
1
Próbowałem tego z konta innego niż administrator w systemie macOS Sierra (10.12.3) i nie działało, ponieważ musiało to zrobić chgrp admin /usr/local, a konto inne niż administrator nie należy do grupy administracyjnej, więc może „ zmienić cokolwiek w tej grupie. Byłoby wspaniale, gdyby działało to dla zwykłego konta nieadministracyjnego (nie tylko dla kont administracyjnych, które z jakiegoś dziwnego powodu zostały zablokowane z sudo).
Spiff
0

Tak.

System parzenia wydaje się być bootowalny

#!/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/"
węgorz ghEEz
źródło
0

Aby zainstalować homebrew bez sudo .

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

Uruchom ponownie terminal i uruchom

brew --version
Astik Anand
źródło
0

Brew przeniósł swoje repozytorium git, dlatego powyższe nie działa.

git clone [email protected]:Homebrew/brew.git
echo 'export PATH="/path/to/cloned_folder/homebrew/bin:$PATH"' >> ~/.bash_profile
pwaterz
źródło
1
Przez „powyższe” masz na myśli odpowiedź Astika Ananda ? Nie zawsze będzie „powyżej” twojej odpowiedzi. Jeśli coś w ich odpowiedzi powinno zostać zmienione, edytuj to sam.
nekomatic