Jag är inte klar över hur man lägger till permanenta banor till PATH-miljöen. Jag har hittat flera frågor för detta varje gång med olika svar. Jag skapade en .bash_profile
i mitt hem-dir, men varje gång jag startar om måste jag export
göra mina banor igen.
source ~/.bash_profile
fungerar inte ens.
Vad saknar jag?
Detta är för närvarande min .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"
Kommentarer
Svar
Vad du har lagt fram är det rätta sättet att lägga till ytterligare kataloger till din användare ”s $PATH
.
Steg 1 – ~/.bash_profile
För att börja göra ändringar i din ~/.bash_profile
lägga till de platser du ”d gillar att ha ändrat till din $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"
Steg 2 – källa ~/.bash_profile
Efter att ha gjort ovanstående ändringar av den här filen kan du antingen använda kommandot source
eller .
notation för att ”ladda om” och ändringar som gjorts i den här filen i ditt nuvarande skals sammanhang.
$ . ~/.bash_profile
-eller-
$ source ~/.bash_profile
Steg 3 – Utvärdera ändringar
När du har gjort ändringarna och sökt dem kan du bekräfta att de hade den effekt du önskade genom att eka innehållet i 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/
Ordern betyder, så kataloger som förekommer först kommer att sökas först. Om en binärmiljö bor på flera ställen kommer den första platsen att vara den som används.
Tänk också på att flera källor i den här filen kommer att ha en negativ effekt om de fortsätter att lägga till samma ändringar, så är det ofta så att du helt vill se $PATH
till ett konsekvent känt initialtillstånd och sedan ändra det med dessa typer av kommandon:
export PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin" export PATH="/some/new/dir:$PATH"
Använda path_helper
macOS innehåller också en hjälp som hjälper dig att hantera din $PATH
. Det finns här /usr/libexec/path_helper
.
Så istället för att manuellt skapa din bas $PATH
som nämnts ovan kan du istället använd det här utdraget för att få en känd bra startpunkt för din $PATH
.
[ -x /usr/libexec/path_helper ] && eval $(/usr/libexec/path_helper -s)
Detta tar hand om att initialisera $PATH
så alla kataloger som anges i /etc/paths
och /etc/paths.d/
läggs till automatiskt.
Kommentarer
- Det kan vara bättre att använda
[ -x /usr/libexec/path_helper ] && eval $(/usr/libexec/path_helper -s)
för att initialisera sökvägen så att alla kataloger som anges i/etc/paths
och/etc/paths.d/
läggs till automatiskt. - @nohillside är vettigt. Jag var inte ' t medveten om att macOS hade den här hjälpen, tack, jag ' kommer att lägga till A ' er.
- Har en titt på
/etc/profile
. Det ' händer inte mycket där, men initialt isingPATH
är en del av det. - Bara ett huvud ' är uppe, min
~./bash_profile
vägar bara till~/.bashrc
vilket är den faktiska filen jag var tvungen att ändra. - @slm
[ -x /usr/libexec/path_helper ] && eval $(/usr/libexec/path_helper -s)
att ta bort den andra delen ger mig samma resultat som att bara använda den första delen när jagsource ~/.bash_profile
mer än en gång. Kanske kan en förklaring av vad varje del gör vara till hjälp.
echo $PATH
echo $PATH
så att jag tydligt och specifikt kunde se vad resultatet blev. Tyvärr, men jag kan ' inte hjälper om jag får inte den information jag begär!/Applications/XAMPP/xamppfiles/bin:/usr/local/opt/openssl/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin