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

  • Vad menar du med " källa ~ / .bash_profile fungerar inte ' t "? Får du ett felmeddelande?
  • Avsluta terminalen och öppna den sedan igen … vad ' är resultatet av: echo $PATH
  • @ user3439894 ja att ' är konstigt, faktiskt är vägarna alla här, första raden utesluten (python)
  • Jag förväntade mig att du skulle posta den resultat av 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

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 ising PATH ä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 jag source ~/.bash_profile mer än en gång. Kanske kan en förklaring av vad varje del gör vara till hjälp.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *