Nu „știu cum să adaug permanent căi la PATH env var. Am găsit mai multe întrebări pentru asta de fiecare dată cu răspunsuri diferite. Am creat un .bash_profile în directorul meu de acasă, dar de fiecare dată când repornesc trebuie să îmi manual manual export din nou.

source ~/.bash_profile nici măcar nu funcționează.

Ce îmi lipsește?

Acesta este în prezent .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" 

Comentarii

  • Ce vrei să spui cu " source ~ / .bash_profile doesnt ' chiar nu funcționează "? Aveți un mesaj de eroare?
  • Părăsiți terminalul, apoi redeschideți-l … care este ' rezultatul: echo $PATH
  • @ user3439894 da, că ' e ciudat, de fapt căile sunt toate aici, primul rând exclus (cel de la python)
  • Mă așteptam să postați rezultatul echo $PATH, așa că am putut vedea în mod explicit și concret care a fost rezultatul. Ne pare rău, dar nu pot ' să ajut dacă Nu mi s-au dat informațiile pe care le solicitez!
  • /Applications/XAMPP/xamppfiles/bin:/usr/local/opt/openssl/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

Răspuns

Ceea ce ați prezentat este modalitatea corectă de a adăuga directoare suplimentare utilizatorului dvs. $PATH.

Pasul 1 – ~/.bash_profile

Pentru a începe să efectuați modificări la ~/.bash_profile adăugând orice locații doriți doresc să fi modificat $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" 

Pasul 2 – sursa ~/.bash_profile

După ce ați făcut modificările de mai sus la acest fișier, puteți folosi comanda source sau . notație la „reîncărcare” și modificările aduse acestui fișier în contextul shell-ului curent.

$ . ~/.bash_profile 

-or-

$ source ~/.bash_profile 

Pasul 3 – Evaluarea modificărilor

După efectuarea modificărilor și obținerea acestora puteți confirma că au avut efectul pe care l-ați dorit, repetând conținutul 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/ 

Comanda contează, astfel încât directorele care apar mai întâi vor fi căutate mai întâi. Dacă un binar trăiește în mai multe locuri, primul loc întâlnit va fi cel utilizat.

Rețineți, de asemenea, că mai multe surse ale acestui fișier vor avea un efect negativ de a continua să adăugați aceleași modificări, deci este adesea cazul în care veți dori să configurați complet $PATH într-o stare inițială consistentă cunoscută și apoi să o modificați cu aceste tipuri de comenzi:

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

Utilizarea path_helper

MacOS include, de asemenea, un ajutor pentru asistență în gestionarea $PATH. Se află aici /usr/libexec/path_helper.

Deci, în loc să vă creați manual baza $PATH, așa cum s-a menționat mai sus, puteți în schimb utilizați acest fragment pentru a obține un bun punct de plecare cunoscut pentru $PATH.

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

Acest lucru va avea grijă să inițializați $PATH astfel încât orice directoare listate în /etc/paths și /etc/paths.d/ să fie adăugate automat.

Comentarii

  • Ar putea fi mai bine să utilizați [ -x /usr/libexec/path_helper ] && eval $(/usr/libexec/path_helper -s) pentru a inițializa calea, astfel încât orice directoare listate în /etc/paths și /etc/paths.d/ se adaugă automat.
  • @nohillside are sens. Nu eram ' Nu știți că MacOS avea acest ajutor, mulțumesc, voi ' voi adăuga la A ' er.
  • Am o privire la /etc/profile. ' nu se întâmplă prea mult acolo, ci inițial ising PATH face parte din el.
  • Doar un cap ' este în sus, ~./bash_profile doar rute către ~/.bashrc care este fișierul real pe care a trebuit să îl modific.
  • @slm [ -x /usr/libexec/path_helper ] && eval $(/usr/libexec/path_helper -s) eliminarea celei de-a doua părți îmi dă același rezultat ca și folosirea primei părți când source ~/.bash_profile de mai multe ori. Poate că ar fi utilă o explicație a ceea ce face fiecare parte.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *