Nem tudom, hogyan lehet véglegesen hozzáadni az utakat a PATH env var-hoz. Több kérdést is találtam ezt minden alkalommal más-más válaszokkal. Létrehoztam egy .bash_profile
-t az otthoni könyvtáramban, de minden egyes újraindításkor újra manuálisan kell kezelnem az export
utakat.
source ~/.bash_profile
nem is működik.
Mi hiányzik?
Ez jelenleg az én .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"
Megjegyzések
Válasz
Amit elrendezett, az a megfelelő módja annak, hogy további könyvtárakat adjon hozzá a felhasználóhoz “s $PATH
.
1. lépés – ~/.bash_profile
Szerkesztés megkezdéséhez ~/.bash_profile
a kívánt helyek hozzáadásával szeretném, ha módosítanád a következőt: $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"
2. lépés – forrás ~/.bash_profile
A fájl fenti szerkesztése után használhatja a source
parancsot vagy a .
“újratöltés” jelölés és a fájlban végrehajtott módosítások az aktuális shell környezetében.
$ . ~/.bash_profile
-vagy-
$ source ~/.bash_profile
3. lépés – A változások értékelése
A szerkesztések elvégzése és beszerzése után a 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/
A sorrend számít, így az először előforduló könyvtárak kerülnek először keresésre. Ha egy bináris több helyen él, akkor az első lesz az a hely, amelyet használunk.
Ne feledje, hogy ennek a fájlnak több forrásakor is negatív hatása lesz, ha továbbra is hozzáadja ugyanazokat a változásokat, így gyakran előfordul, hogy a $PATH
-et teljesen konzisztens ismert kezdeti állapotba akarja vinni, majd az ilyen típusú parancsokkal módosítja:
export PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin" export PATH="/some/new/dir:$PATH"
path_helper használata
A macOS egy segítőt is tartalmaz, amely segítséget nyújt a $PATH
kezelésében. Itt található /usr/libexec/path_helper
.
Tehát ahelyett, hogy manuálisan elkészítené a bázist $PATH
, mint fent említettük, ehelyett megteheti használja ezt a részletet egy ismert jó kiindulási pont megszerzéséhez a $PATH
eszközhöz.
[ -x /usr/libexec/path_helper ] && eval $(/usr/libexec/path_helper -s)
Ez gondoskodni fog az inicializálásról $PATH
így a /etc/paths
és /etc/paths.d/
listában szereplő könyvtárak automatikusan hozzáadódnak.
Megjegyzések
- Lehet, hogy jobb az
[ -x /usr/libexec/path_helper ] && eval $(/usr/libexec/path_helper -s)
használatával inicializálni az elérési utat, hogy a/etc/paths
és/etc/paths.d/
automatikusan hozzáadódnak. - A @nohillside-nek van értelme. Nem voltam ' Tisztában vagyok azzal, hogy a macOS-ban volt ez a segítő, köszönöm, hozzáadom a ' erhez.
- egy pillantás a
/etc/profile
-re. ' nem sok minden történik ott, de kezdeti az isPATH
része. - Csak egy fej ' s fel, én
~./bash_profile
csak átirányít a~/.bashrc
oldalra, amely az a tényleges fájl, amelyet módosítanom kellett. - @slm
[ -x /usr/libexec/path_helper ] && eval $(/usr/libexec/path_helper -s)
második rész eltávolítása ugyanazt az eredményt adja, mint az első rész használata, amikorsource ~/.bash_profile
többször is. Talán hasznos lehet az egyes részek kifejtése.
echo $PATH
echo $PATH
eredménye, így kifejezetten és konkrétan láthattam, mi az eredmény. Sajnálom, de ' nem tudok segíteni, ha nem adtam meg az általam kért információkat!/Applications/XAMPP/xamppfiles/bin:/usr/local/opt/openssl/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin