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
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 allinizioPATH
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 quandosource ~/.bash_profile
più di una volta. Forse sarebbe utile una spiegazione di ciò che fa ciascuna parte.
echo $PATH
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