Jeg er ikke klar over hvordan man legger permanent stier til PATH-env-var. Jeg har funnet flere spørsmål til dette hver gang med forskjellige svar. Jeg opprettet en .bash_profile i hjemmet ditt, men hver gang jeg starter på nytt, må jeg manuelt export mine baner igjen.

source ~/.bash_profile fungerer ikke engang.

Hva mangler jeg?

Dette er for øyeblikket 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

  • Hva mener du med " kilde ~ / .bash_profile fungerer ikke ' t "? Får du en feilmelding?
  • Avslutt terminalen, og åpne den deretter … hva ' er resultatet av: echo $PATH
  • @ user3439894 ja det ' er rart, faktisk er stiene alle her, første rad ekskludert (python)
  • Jeg forventet at du skulle legge ut resultat av echo $PATH slik at jeg kunne se eksplisitt og spesifikt hva resultatet ble. Beklager, men jeg kan ' ikke hjelpe hvis jeg Jeg har ikke gitt den informasjonen jeg ber om!
  • /Applications/XAMPP/xamppfiles/bin:/usr/local/opt/openssl/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

Svar

Det du har lagt ut er den riktige måten å legge til flere kataloger til brukeren din «s $PATH.

Trinn 1 – ~/.bash_profile

For å begynne å gjøre redigeringer i ~/.bash_profile og legge til alle stedene du «d liker å ha endret til $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" 

Trinn 2 – kilde ~/.bash_profile

Når du har gjort endringene ovenfor i denne filen, kan du enten bruke source -kommandoen eller . notasjon for å «laste inn» og endringer som er gjort i denne filen i din nåværende shell-kontekst.

$ . ~/.bash_profile 

-eller-

$ source ~/.bash_profile 

Trinn 3 – Evaluer endringer

Etter at du har gjort endringene og hentet dem, kan du bekrefte at de hadde den effekten du ønsket ved å ekko innholdet 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/ 

Bestillingen betyr noe, så kataloger som oppstår først blir søkt først. Hvis en binærfamilie bor flere steder, vil det første stedet du opplever være den som brukes.

Husk også at flere innkjøp av denne filen vil ha en negativ effekt av å fortsette å legge til de samme endringene, så det er ofte slik at du vil se $PATH til en jevn kjent starttilstand og deretter endre 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" 

Bruke path_helper

macOS inkluderer også en hjelper til å hjelpe deg med administrasjonen av $PATH. Den ligger her /usr/libexec/path_helper.

Så i stedet for manuelt å lage basen din $PATH som nevnt ovenfor, kan du i stedet bruk denne kodebiten for å få et kjent godt utgangspunkt for $PATH.

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

Dette vil passe på å initialisere $PATH så eventuelle kataloger som er oppført i /etc/paths og /etc/paths.d/ blir lagt til automatisk.

Kommentarer

  • Det kan være bedre å bruke [ -x /usr/libexec/path_helper ] && eval $(/usr/libexec/path_helper -s) for å initialisere banen slik at eventuelle kataloger oppført i /etc/paths og /etc/paths.d/ blir automatisk lagt til.
  • @nohillside gir mening. Jeg var ikke ' t klar over at macOS hadde denne hjelperen, takk, jeg ' vil legge til A ' er.
  • Har en titt på /etc/profile. Det ' skjer ikke mye der, men innledende ising PATH er en del av det.
  • Bare et hode ' er oppe, min ~./bash_profile bare ruter til ~/.bashrc som er selve filen jeg måtte endre.
  • @slm [ -x /usr/libexec/path_helper ] && eval $(/usr/libexec/path_helper -s) å fjerne den andre delen gir meg det samme resultatet som bare å bruke den første delen når jeg source ~/.bash_profile mer enn en gang. Kanskje en forklaring på hva hver del gjør, vil være nyttig.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *