Jeg er ikke klar over, hvordan man permanent tilføjer stier til PATH-env-var. Jeg har fundet flere spørgsmål til dette hver gang med forskellige svar. Jeg oprettede en .bash_profile i mit hjem dir, men hver gang jeg genstarter, skal jeg manuelt export mine stier igen.

source ~/.bash_profile fungerer ikke engang.

Hvad mangler jeg?

Dette er i øjeblikket 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

  • Hvad mener du med " kilde ~ / .bash_profile fungerer ikke ' t "? Får du en fejlmeddelelse?
  • Afslut terminal, og åbn den derefter igen … hvad ' er resultatet af: echo $PATH
  • @ user3439894 ja, at ' er underligt, faktisk er stierne alle her, første række ekskluderet (python-en)
  • Jeg forventede, at du skulle sende den resultat af echo $PATH så jeg kunne se eksplicit og specifikt, hvad resultatet blev. Undskyld, men jeg kan ' ikke hjælpe, hvis jeg har ikke givet de oplysninger, jeg anmoder om!
  • /Applications/XAMPP/xamppfiles/bin:/usr/local/opt/openssl/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

Svar

Det, du har lagt ud, er den rigtige måde at tilføje yderligere mapper til din bruger “s $PATH.

Trin 1 – ~/.bash_profile

For at begynde at foretage ændringer i din ~/.bash_profile tilføje de placeringer, du “d gerne have ændret til 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" 

Trin 2 – kilde ~/.bash_profile

Når du har foretaget ovenstående redigeringer af denne fil, kan du enten bruge kommandoen source eller . notation til “genindlæs” og ændringer foretaget i denne fil i din nuværende shell-kontekst.

$ . ~/.bash_profile 

-eller-

$ source ~/.bash_profile 

Trin 3 – Evaluer ændringer

Når du har foretaget redigeringerne og indkøbt dem, kan du bekræfte, at de havde den ønskede effekt ved at ekko indholdet af 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/ 

Ordren betyder noget, så kataloger, der først optræder, bliver først søgt. Hvis en binærfamilie bor flere steder, vil det første sted, du støder på, være det, der bruges.

Husk også, at flere sourcing af denne fil vil have en negativ effekt af at fortsætte med at tilføje de samme ændringer, så det er ofte tilfældet, at du helt vil se $PATH til en ensartet kendt starttilstand og derefter ændre den med disse typer kommandoer:

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

Brug af path_helper

macOS inkluderer også en hjælper til at hjælpe med styringen af din $PATH. Det er her /usr/libexec/path_helper.

Så i stedet for manuelt at lave din base $PATH som nævnt ovenfor kan du i stedet Brug dette uddrag for at få et kendt godt udgangspunkt for din $PATH.

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

Dette sørger for at initialisere $PATH så eventuelle mapper, der er anført i /etc/paths og /etc/paths.d/ tilføjes automatisk.

Kommentarer

  • Det kan være bedre at bruge [ -x /usr/libexec/path_helper ] && eval $(/usr/libexec/path_helper -s) til at initialisere stien, så eventuelle mapper, der er anført i /etc/paths og /etc/paths.d/ bliver automatisk tilføjet.
  • @nohillside giver mening. Jeg var ikke ' t klar over, at macOS havde denne hjælper, tak, jeg ' jeg tilføjer til A ' er.
  • Har et kig på /etc/profile. Det ' foregår ikke meget der, men indledende ising PATH er en del af det.
  • Bare et hoved ' s op, min ~./bash_profile bare ruter til ~/.bashrc som er den faktiske fil, jeg måtte ændre.
  • @slm [ -x /usr/libexec/path_helper ] && eval $(/usr/libexec/path_helper -s) at fjerne den anden del giver mig det samme resultat som bare at bruge den første del, når jeg source ~/.bash_profile mere end én gang. Måske kan en forklaring på, hvad hver del gør, være nyttigt.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *