Kann ich Homebrew ohne sudo-Berechtigungen installieren?

26

Homebrew erlaubt problemlos Paketinstallationen ohne Sudo-Rechte, aber es scheint, dass ich Administratorrechte benötige, um Homebrew selbst zu installieren.

Ich möchte Homebrew in einer Mac-Umgebung installieren, in der ich keine Sudo- oder Administratorrechte habe. Ist das möglich?

BenjaminGolder
quelle

Antworten:

12

Nein. Es sei denn, Sie führen eine nennenswerte Operation durch.

Der Grund dafür ist, dass Homebrew nachdrücklich darauf besteht, Pakete zu installieren /usr/local. Selbst wenn Sie die Installation an einem anderen Ort erzwingen, können Sie die Abhängigkeiten bei brew installder Installation von Paketen unterbrechen. Die meisten, wenn nicht alle dieser Pakete sind vorkompiliert und verlinkt und erwarten, dass sie leben /usr/local.

Der Grund für dieses Beharren ist, dass /usr/localPOSIX genau dort empfiehlt, dass solche Dinge installiert werden. Zum Erstellen von /usr/localHomebrew sind temporäre Administrator-Anmeldeinformationen erforderlich, um das Verzeichnis zu erstellen und den Besitz zuzuweisen.

Auf diese Weise können Sie alles andere installieren, ohne die Anmeldeinformationen zu erhöhen.

David Hoelzer
quelle
Danke, aber ich glaube du hast meine Frage verpasst. Ich weiß, wie und wo Pakete installiert werden, aber ich möchte Homebrew ohne Admin oder Sudo installieren .
BenjaminGolder
Ich habe deine Frage nicht verpasst. Die Antwort war "Nein". Ich habe nur versehentlich "Ja" gesagt. Sie können nicht einfach tun, was Sie verlangen, und selbst wenn Sie es erzwingen, indem Sie das Homebrew-Installationsprogramm bearbeiten, um Dinge in einen Zweig außerhalb Ihres Home-Verzeichnisses zu verschieben, würden nach der Installation höchstwahrscheinlich viele Brauvorgänge fehlschlagen.
David Hoelzer
okay danke. Ich war durch das vorherige "Ja" verwirrt.
BenjaminGolder
3
Dies ist einfach falsch, oder zumindest ist Ihre Definition von "signifikanter Operation" ganz anders als meine. Ich habe brewüber 5 Jahre lang ein Präfix für mein Home-Verzeichnis festgelegt und in dieser Zeit sind 1 oder 2 Pakete kaputt gegangen.
James McMahon
Allerdings gibt es auch noch dieses, was schwer zu umgehen ist: Fehler: Sie haben der Xcode-Lizenz nicht zugestimmt. Bitte lösen Sie dies durch Ausführen von: sudo xcodebuild -license accept
Albert
17

Ja.

Ich habe das Installationsskript so geändert, dass es nicht verwendet wird sudound ein Verzeichnis Ihrer Wahl verwendet wird. https://gist.github.com/skyl/36563a5be809e54dc139

Laden Sie das herunter, setzen Sie YOUR_HOMEim Skript den absoluten Pfad. chmod +xdas Drehbuch. Erstellen Sie das YOUR_HOME/usr/localVerzeichnis. Führen Sie dann das Skript aus.

./install.rb

In .bash_profile, habe ich (ich bin nicht positiv , das ist wichtig, ziemlich sicher):

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

Jetzt kann ich:

brew install wget

Stellen Sie sicher bin, dass sich das Verzeichnis YOUR_HOME+ /usr/local/binin Ihrem befindet $PATH.

which wget
Skylar Saveland
quelle
1
Im Installationsskript musste ich #{YOUR_HOME}der HOMEBREW_CACHEVariablen ebenfalls ein Präfix hinzufügen . Das, und da das System Admin bereits Homebrew installiert hatte, musste ich hinzufügen , export PATH=/path/to/home/usr/local/bin:$PATHum .bash_profileauch. Aber mit all dem scheint es großartig zu funktionieren.
Golmschenk
3
Ich habe den Vorgang gerade noch einmal durchlaufen und wollte nur erwähnen, dass Sie auch ein usrVerzeichnis in Ihrem Home-Verzeichnis erstellen müssen, bevor das Skript ausgeführt wird. Außerdem müssen Sie beim Hinzufügen #{YOUR_HOME}zur HOMEBREW_CACHEVariablen die einfachen Anführungszeichen in doppelte Anführungszeichen ändern, damit sie funktionieren. Es gibt also ein paar Schritte, aber es lohnt sich auf jeden Fall, die Kraft von Homebrew zu erlangen.
Golmschenk
@golmschenk doppelte Anführungszeichen sind erforderlich, damit die Formatierung von Ruby-Strings funktioniert, glaube ich.
Skylar Saveland
1
Das ist eine schöne Einstellung. Sie sollten wirklich eine Pull-Anfrage an das Home-Brew-Projekt senden.
David Hoelzer
1
Ich habe dies von einem Nicht-Administrator-Konto unter macOS Sierra (10.12.3) aus versucht, und es hat nicht funktioniert, weil es einen ausführen musste chgrp admin /usr/local, und ein Nicht-Administrator-Konto ist kein Mitglied der Administratorgruppe. nichts an dieser Gruppe ändern. Es wäre großartig, wenn dies für ein normales Konto ohne Administratorrechte (nicht nur für Administratorkonten, die aus irgendeinem seltsamen Grund für sudo gesperrt wurden) funktioniert.
Spiff
0

Ja.

Das Brühsystem scheint bootfähig zu sein

#!/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/"
Aal Ghez
quelle
0

So installieren Sie Homebrew ohne Sudo .

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

Terminal neu starten und ausführen

brew --version
Astik Anand
quelle
0

Brew hat sein Git Repo verschoben, weshalb das oben genannte nicht mehr funktioniert.

git clone [email protected]:Homebrew/brew.git
echo 'export PATH="/path/to/cloned_folder/homebrew/bin:$PATH"' >> ~/.bash_profile
pwaterz
quelle
1
Mit "oben" meinen Sie die Antwort von Astik Anand ? Es wird nicht immer über Ihrer Antwort liegen. Wenn etwas in ihrer Antwort geändert werden sollte, bearbeiten Sie es selbst.
nekomatic