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
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 isingPATH
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 jegsource ~/.bash_profile
mere end én gang. Måske kan en forklaring på, hvad hver del gør, være nyttigt.
echo $PATH
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