Posso installare Homebrew senza i privilegi di sudo?


26

Homebrew consente di installare facilmente pacchetti senza privilegi di sudo, ma sembra che io abbia bisogno dei privilegi di amministratore per installare Homebrew stesso.

Vorrei installare Homebrew in un ambiente Mac in cui non ho i privilegi di amministratore o sudo. È possibile?

Risposte:


12

No ... A meno che tu non faccia un intervento chirurgico significativo.

Il motivo è che Homebrew insiste fortemente sull'installazione di pacchetti in /usr/local. In effetti, anche se lo hai costretto a installare altrove, è probabile che tu rompa le dipendenze quando usi brew installper installare i pacchetti. La maggior parte se non tutti questi pacchetti sono precompilati e collegati in attesa di vivere /usr/local.

La ragione di questa insistenza è che /usr/localPOSIX raccomanda che vengano installate cose come questa. Per creare /usr/localHomebrew sono necessarie credenziali amministrative temporanee per creare la directory e assegnare la proprietà.

Questo, a sua volta, è ciò che consente di installare qualsiasi altra cosa senza elevare le credenziali.


Grazie, ma penso che ti sia persa la mia domanda. So come e dove installa i pacchetti, ma voglio installare Homebrew senza admin o sudo.
BenjaminGolder,

Non ho perso la tua domanda. La risposta è stata "No" .. Ho appena detto "Sì" per errore. Non puoi fare facilmente quello che stai chiedendo e anche se lo hai forzato modificando il programma di installazione di Homebrew per mettere le cose in un ramo della tua home directory, molto probabilmente molte birre fallirebbero dopo l'installazione.
David Hoelzer,

va bene, grazie. Ero confuso dal precedente "Sì".
BenjaminGolder,

3
Questo è solo sbagliato, o almeno la tua definizione di "chirurgia significativa" è molto diversa dalla mia. Sono stato in esecuzione brewcon un prefisso impostato sulla mia home directory per oltre 5 anni e ho riscontrato 1 o 2 pacchetti rotti in quel momento.
James McMahon,

Tuttavia, c'è anche questo, che è difficile aggirare: Errore: Non hai accettato la licenza Xcode. Per favore risolvilo eseguendo: sudo xcodebuild -license accetta
Albert

17

Sì.

Ho modificato lo script di installazione per non utilizzare sudoe utilizzare una directory di tua scelta. https://gist.github.com/skyl/36563a5be809e54dc139

Scarica quello, impostato YOUR_HOMEnello script sul percorso assoluto. chmod +xil copione. Crea la YOUR_HOME/usr/localdirectory. Quindi, esegui lo script.

./install.rb

In .bash_profile, ho impostato (non sono sicuro che questo sia importante, abbastanza sicuro):

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

Ora posso:

brew install wget

Assicurati che la bindirectory, YOUR_HOME+ /usr/local/binsia nella tua $PATH.

which wget

1
Nello script di installazione ho dovuto aggiungere anche il #{YOUR_HOME}prefisso alla HOMEBREW_CACHEvariabile. Questo, e perché l'amministratore di sistema già aveva installato homebrew, ho dovuto aggiungere export PATH=/path/to/home/usr/local/bin:$PATHa .bash_profilepure. Ma con tutto ciò, sembra funzionare alla grande.
Golmschenk,

3
Ho appena ripetuto il processo e volevo solo menzionare che devi anche creare una usrdirectory nella tua home directory prima che lo script venga eseguito. Inoltre, quando si aggiunge #{YOUR_HOME}alla HOMEBREW_CACHEvariabile, sembra che sia necessario modificare le virgolette singole in virgolette doppie affinché funzioni. Quindi ci sono alcuni passaggi, ma ne vale sicuramente la pena per ottenere il potere di Homebrew.
Golmschenk,

Credo che le doppie virgolette di @golmschenk siano necessarie per dare il via alla formattazione delle stringhe di ruby.
Skylar Saveland,

1
È un bel aggiustamento. Dovresti davvero inoltrare una richiesta pull al progetto birra fatta in casa.
David Hoelzer,

1
Ho provato questo da un account non amministratore su macOS Sierra (10.12.3) e non ha funzionato perché aveva bisogno di fare un chgrp admin /usr/local, e un account non amministratore non è un membro del gruppo admin, quindi può " non cambiare nulla in quel gruppo. Sarebbe bello se questo potesse essere fatto funzionare per un normale account non amministratore (non solo per gli account amministratore che per qualche strana ragione sono stati bloccati da sudo).
Spiff

0

Sì.

Il sistema di infusione sembra avviabile

#!/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

Per installare homebrew senza sudo .

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

Riavvia il terminale ed esegui

brew --version

0

Brew ha spostato il repository git, motivo per cui quanto sopra non funziona più.

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

1
Con "quanto sopra" intendi la risposta di Astik Anand ? Non sarà sempre "sopra" la tua risposta. Se qualcosa nella loro risposta deve essere cambiato, modificalo tu stesso.
Nekomatic
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.