Come modificare PATH per Homebrew?


150

Cercando di installare ruby ​​1.9.3, leggi che devo prima installare homebrew. Ho fatto il dottore, e mi sta dando un sacco di avvertimenti. Uno dei quali è:

Avvertenza: / usr / bin si verifica prima di / usr / local / bin Ciò significa che verranno utilizzati i programmi forniti dal sistema anziché quelli forniti da Homebrew. I seguenti strumenti esistono in entrambi i percorsi:

easy_install
easy_install-2.6

Valuta di modificare il tuo PERCORSO in modo che / usr / local / bin sia in anticipo rispetto a / usr / bin nel tuo PERCORSO.

Come si fa a fare ciò che si chiede qui?


1
@AristotlePagaltzis 's risposta sul SuperUser dà la soluzione migliore, a mio parere, che consente le applicazioni di sistema di continuare a utilizzare /usr/bin, mentre si link simbolico in modo selettivo gli eseguibili Homebrew che si desidera utilizzare al posto delle versioni Apple spediti, come Git.

@mrdavidjcole: fengd non ha risposto a questa domanda?
fotinsky,

Stack Overflow è un sito per domande di programmazione e sviluppo. Questa domanda sembra essere fuori tema perché non si tratta di programmazione o sviluppo. Consulta quali argomenti posso chiedere qui nel Centro assistenza. Forse Super User o Apple Stack Exchange sarebbero un posto migliore per chiedere. Vedi anche Dove posso pubblicare domande su Dev Ops? .
dal

Risposte:


299

apri il tuo file / etc / percorsi, metti / usr / local / bin sopra / usr / bin

$ sudo vi /etc/paths
/usr/local/bin
/usr/local/sbin
/usr/bin
/bin
/usr/sbin
/sbin

e riavviare il terminale , @mmel


9
Ricarica l'ambiente o avvia un nuovo terminale dopo aver apportato questa modifica.
mmell,

4
Non sono d'accordo con questo - dovresti usare la seguente risposta - time machine ecc. Non prenderà questa modifica penso che sia una cartella utente esterna.
Ian Warner,

Questa è anche la migliore soluzione che ho trovato se il tuo problema è che RVM e Homebrew sembrano competere per lo stesso immobile nel tuo file .bash_profile.
MCB

NON modificherei / etc / percorsi; usa invece i metodi .profile / .bash_profile descritti altrove (ad es. risposta di @avelis in basso o per un approccio più paranoico, vedi il primo commento che fa riferimento a Aristotele Pagaltzis su SuperUser.
rholmes

1
Potresti provare a utilizzare l'editor di testo nano terminal invece di via. Ho trovato questo più facile da usare. "sudo nano / etc / percorsi" invece di "sudo vi / etc / percorsi".
tbradley22,

78

Esistono molti modi per aggiornare il tuo percorso. La prima risposta funziona alla grande. Un altro metodo è quello di aumentare il tuo .bash_profileavere:

export PATH="/usr/local/bin:/usr/local/sbin:~/bin:$PATH"

La linea sopra i posti /usr/local/bine /usr/local/sbindi fronte al tuo $PATH. Una volta che hai creato il tuo .bash_profileo avviato un nuovo terminale, puoi verificare il tuo percorso ripetendolo .

$ echo $PATH
/usr/local/bin:/usr/local/sbin:/Users/<your account>/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin

Una volta soddisfatto del risultato, l'esecuzione di $ brew doctornuovo non dovrebbe più produrre l'errore.

Questo post sul blog mi ha aiutato a risolvere i problemi che ho riscontrato. http://moncefbelyamani.com/how-to-install-xcode-homebrew-git-rvm-ruby-on-mac/


2
@JanuszChudzynski Per la soluzione di Jun1st, potrebbe essere necessario riavviare la sessione della riga di comando per vedere la modifica.
avelis,

Versioni recenti di homebrew day: considera di impostare il PATH in modo che / usr / local / bin si presenti prima di / usr / bin. Ecco una battuta:echo export PATH="/usr/local/bin:$PATH" >> ~/.bash_profile . Questo è fondamentalmente ciò che suggerisce questa risposta.
nacho4d,

Tuttavia dubito che sia la strada giusta. Vedi sotto: Prima della modifica: /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/binmodifica: echo export PATH="/usr/local/bin:$PATH >> ~/.bash_profileDopo la modifica: /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin Ciò significa che se un comando non viene trovato in / usr / local / bin, potrebbe essere cercato due volte prima di trovarsi in un altro percorso. Penso che sia meglio cambiare il /etc/pathsfile
nacho4d

$ echo 'export PATH = "/ usr / local / bin: $ PATH"' >> ~ / .bash_profile mi dà $ PATH "'>> ~ / .bash_profile -bash: $: comando non trovato
Mamba

@rpeg Sono sicuro che se cerchi web tutorial c'è un'abbondanza di risorse, ma qui ne conosco uno. linux.com/learn/tutorials/272346-bash-101-working-at-the-cli
avelis

20

Basta eseguire la seguente riga nella propria applicazione terminale preferita:

echo export PATH="/usr/local/bin:$PATH" >> ~/.bash_profile

Riavvia il terminale ed esegui

brew doctor

il problema dovrebbe essere risolto


3
Se stai usando zsh usa questo comando echo 'export PATH = "/ usr / local / sbin: $ PATH"' >> ~ / .zshrc
kareem

1

apri il profilo bash in textEdit

apri -e .bash_profile

Modifica il file o incolla davanti all'esportazione PATH PATH = / usr / bin: / usr / sbin: / bin: / sbin: / usr / local / bin: / usr / local / sbin: ~ / bin

salva e chiudi il file

* Per aprire .bash_profile aprire direttamente textEdit> file> recente


0

Per evitare inutili duplicazioni, ho aggiunto quanto segue al mio ~ / .bash_profile

case ":$PATH:" in
  *:/usr/local/bin:*) ;;     # do nothing if $PATH already contains /usr/local/bin
  *) PATH=/usr/local/bin:$PATH ;;  # in every other case, add it to the front
esac

Credito: https://superuser.com/a/580611

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.