Modifica del PERCORSO in modo che / usr / local / bin sia davanti a / usr / bin


24

Sto cercando di installare brew ma ricevo il seguente avviso:

Warning: /usr/bin occurs before /usr/local/bin
This means that system-provided programs will be used instead of those
provided by Homebrew. The following tools exist at both paths:

2to3
2to3-2.7
idle
idle2.7
pydoc
pydoc2.7
python
python-config
python2.7
python2.7-config
pythonw
pythonw2.7
smtpd.py
smtpd2.7.py

Consider amending your PATH so that /usr/local/bin
is ahead of /usr/bin in your PATH.

Non ho idea di come modificare il percorso. Ho esplorato diversi file da questo post di overflow dello stack (http://stackoverflow.com/questions/8886114/using-brew-with-ruby-1-9-2), ma non riesco a trovare un percorso rilevante da modificare. L'unico file che ho che esiste è il mio file / etc / profile che attualmente assomiglia a:

# Setting PATH for Python 2.7
# The orginal version is saved in .bash_profile.pysave
    PATH="/Library/Frameworks/Python.framework/Versions/2.7/local/bin:${PATH}"
export PATH

Volevo solo disinstallare Python e reinstallarlo tramite homebrew, ma sono un po 'nervoso per aver rotto troppe cose contemporaneamente.

C'è un modo semplice per modificare il percorso? Devo creare un file .bash_profile? Grazie per qualsiasi aiuto in anticipo.

Risposte:


30

Sì, crea un .bash_profilefile nella tua home directory contenente

PATH="/usr/local/bin:$PATH"

e quindi effettuare una delle seguenti operazioni per rendere attiva la modifica

  • eseguire . ~/.bash_profile
  • eseguire PATH="/usr/local/bin:$PATH"nella shell corrente
  • riavvia Terminal

2
@threenovation se la risposta sopra è corretta, posso suggerirti di contrassegnarla come risposta (fare clic sul segno di spunta accanto alla risposta)
Stu Wilson

Mi chiedo se questo dovrebbe essere esportato? Anche i processi figlio dovrebbero avere questo nuovo percorso. Inoltre: quando ho impostato brew, non mi ha avvertito che / usr / bin è arrivato prima / usr / local / bin.
Steven Lu,

@StevenLu, è già esportato quando arrivi a .bash_profile. Non sarebbe male esportarlo di nuovo esplicitamente, ma non necessario.
Glenn Jackman,

Grazie per questo. Ha funzionato "Il tuo sistema è raro da preparare."
Vezu,

Mi sembra di ricevere voci duplicate in $PATH.
flow2k,

10

Devi modificare / etc / percorsi in modo che / usr / local / bin sia elencato prima di / usr / bin . Per farlo, dovrai eseguire il sudo del tuo editor.

Uno dei modi per aprire l'editor è

 sudo open -t /etc/paths

Il mio PERCORSO è stato configurato correttamente nel mio .bash_profile, ma non in /etc/paths. Questo ha funzionato magnificamente.
Nick Tomlin,

7
NON utilizzare questo metodo per impostare il percorso: esiste il rischio che le applicazioni non terminali raccolgano i componenti "preparati" e falliscano. L'uso di "sudo" dovrebbe anche essere una bandiera rossa a meno che tu non capisca veramente cosa stai facendo (specialmente con un sistema di sviluppo a livello di utente come Mac Homebrew). La modifica del file .bash_profile e il riavvio del terminale dovrebbero essere sufficienti.
rholmes,

@rholmes Quindi le modifiche .bash_profileriguardano solo le shell interattive degli utenti e non altre applicazioni?
flow2k,

1
@ flow2k .bash_profile influenzerà le shell interattive dell'utente. Le variabili esportate verranno visualizzate dalle applicazioni avviate dalla riga di comando della shell (ad esempio, l'avvio di un'app Mac "normale" o un comando da riga di comando). Alcuni dettagli in più possono essere trovati qui, ma stanno facendo una distinzione più fine di quello che hai chiesto: scriptingosx.com/2017/04/about-bash_profile-and-bashrc-on-macos La risposta di glenn jackman è quella da usare .
rholmes,

1
@ flow2k sì, l'hai affermato correttamente.
rholmes,
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.