Non mi è chiaro come aggiungere in modo permanente percorsi a PATH env var. Ho “trovato diverse domande per questo ogni volta con risposte diverse. Ho creato un .bash_profile nella mia directory home, ma ogni volta che riavvio devo manualmente export i miei percorsi di nuovo.

source ~/.bash_profile non funziona nemmeno.

Cosa mi manca?

Questo è attualmente il mio .bash_profile

export PATH="/usr/local/opt/python/libexec/bin:$PATH" export PATH="/usr/local/opt/openssl/bin:$PATH" export PATH="/Applications/XAMPP/xamppfiles/bin:$PATH" export LDFLAGS="-L/usr/local/opt/openssl/lib" export CPPFLAGS="-I/usr/local/opt/openssl/include" 

Commenti

  • Cosa intendi con " source ~ / .bash_profile ' non funziona nemmeno "? Ricevi un messaggio di errore?
  • Esci dal terminale, quindi riaprilo … qual è ' è il risultato di: echo $PATH
  • @ user3439894 sì, ' è strano, in realtà i percorsi sono tutti qui, prima riga esclusa (quella python)
  • Mi aspettavo che pubblicassi il risultato di echo $PATH in modo da poter vedere in modo esplicito e specifico quale era il risultato. Mi spiace, ma non posso ' aiutarti se non mi hanno dato le informazioni che richiedo!
  • /Applications/XAMPP/xamppfiles/bin:/usr/local/opt/openssl/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

Risposta

Quello che hai disposto è il modo corretto per aggiungere ulteriori directory al tuo utente “s $PATH.

Passaggio 1 – ~/.bash_profile

Per iniziare ad apportare modifiche al tuo ~/.bash_profile aggiungendo qualsiasi località tu “d mi piacerebbe aver modificato il tuo $PATH.

export PATH="/usr/local/opt/python/libexec/bin:$PATH" export PATH="/usr/local/opt/openssl/bin:$PATH" export PATH="/Applications/XAMPP/xamppfiles/bin:$PATH" 

Passaggio 2 – fonte ~/.bash_profile

Dopo aver apportato le modifiche precedenti a questo file, puoi utilizzare il comando source o il . notazione “ricaricare” e le modifiche apportate a questo file nel contesto della shell corrente.

$ . ~/.bash_profile 

-oppure-

$ source ~/.bash_profile 

Passaggio 3 – Valuta le modifiche

Dopo aver apportato le modifiche e averle acquisite, puoi confermare che hanno avuto leffetto desiderato facendo eco ai contenuti del varible.

$ echo $PATH | tr ":" "\n" /usr/local/bin /usr/bin /bin /usr/sbin /sbin /opt/X11/bin /Applications/Wireshark.app/Contents/MacOS /usr/local/sbin /Users/smingolelli/bin /usr/local/opt/go/libexec/bin /Applications/Visual Studio Code.app/Contents/Resources/app/bin /Users/smingolelli/projects/kubebuilder/kubebuilder_1.0.5_darwin_amd64/bin/ 

Lordine è importante, quindi le directory che compaiono per prime verranno cercate per prime. Se un binario risiede in più posti, il primo posto incontrato sarà quello utilizzato.

Inoltre, tieni presente che più sorgenti di questo file avranno un effetto negativo se continuerai ad aggiungere le stesse modifiche, quindi è spesso il caso che tu voglia impostare completamente $PATH in uno stato iniziale noto coerente e poi modificarlo con questi tipi di comandi:

export PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin" export PATH="/some/new/dir:$PATH" 

Luso di path_helper

macOS include anche un helper per lassistenza nella gestione del tuo $PATH. Si trova qui /usr/libexec/path_helper.

Quindi, invece di creare manualmente la tua $PATH come menzionato sopra, puoi usa questo snippet per ottenere un buon punto di partenza noto per il tuo $PATH.

[ -x /usr/libexec/path_helper ] && eval $(/usr/libexec/path_helper -s) 

Questo si occuperà di inizializzare $PATH in modo che tutte le directory elencate in /etc/paths e /etc/paths.d/ vengano aggiunte automaticamente.

Commenti

  • Potrebbe essere meglio utilizzare [ -x /usr/libexec/path_helper ] && eval $(/usr/libexec/path_helper -s) per inizializzare il percorso in modo che tutte le directory elencate in /etc/paths e /etc/paths.d/ vengono aggiunti automaticamente.
  • @nohillside ha senso. Non ero ' Non so che macOS avesse questo aiuto, grazie, io ' aggiungerò a A ' er.
  • Avere uno sguardo a /etc/profile. ' non sta succedendo molto, ma allinizio PATH ne fa parte.
  • Solo una ' testa, il mio ~./bash_profile indirizza solo a ~/.bashrc, che è il file effettivo che dovevo modificare.
  • @slm [ -x /usr/libexec/path_helper ] && eval $(/usr/libexec/path_helper -s) rimuovendo la seconda parte si ottiene lo stesso risultato dellutilizzo della prima parte quando source ~/.bash_profile più di una volta. Forse sarebbe utile una spiegazione di ciò che fa ciascuna parte.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *