Ik “weet niet hoe ik permanente paden moet toevoegen aan de PATH env var. Ik heb verschillende vragen gevonden voor dit telkens met een ander antwoord. Ik heb een .bash_profile gemaakt in mijn thuismap, maar elke keer dat ik opnieuw opstart, moet ik handmatig export mijn paden opnieuw volgen.

source ~/.bash_profile werkt niet eens.

Wat mis ik?

Dit is momenteel mijn .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" 

Reacties

  • Wat bedoel je met " source ~ / .bash_profile werkt niet ' zelfs "? Krijg je een foutmelding?
  • Sluit Terminal af en open het vervolgens opnieuw … wat is ' is het resultaat van: echo $PATH
  • @ user3439894 ja dat ' is vreemd, eigenlijk zijn de paden hier allemaal, eerste rij uitgesloten (de python-één)
  • Ik verwachtte dat je de resultaat van echo $PATH zodat ik expliciet en specifiek kon zien wat het resultaat was. Sorry, maar ik kan ' niet helpen als ik ik heb niet de informatie gekregen waar ik om vraag!
  • /Applications/XAMPP/xamppfiles/bin:/usr/local/opt/openssl/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

Antwoord

Wat u “hebt uitgelegd, is de juiste manier om extra mappen toe te voegen aan uw gebruikers” s $PATH.

Stap 1 – ~/.bash_profile

Om te beginnen met het maken van bewerkingen in uw ~/.bash_profile en de locaties die u “d graag gewijzigd hebben in uw $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" 

Stap 2 – bron ~/.bash_profile

Nadat je de bovenstaande bewerkingen in dit bestand hebt aangebracht, kun je het source commando of het . notatie naar “herladen” en wijzigingen aan dit bestand in de context van uw huidige shell.

$ . ~/.bash_profile 

-of-

$ source ~/.bash_profile 

Stap 3 – Evalueer wijzigingen

Nadat u de bewerkingen heeft gemaakt en ze heeft gevonden, kunt u bevestigen dat ze het gewenste effect hebben gehad door de inhoud van de 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/ 

De volgorde is van belang, dus de mappen die het eerst voorkomen, zullen eerst worden doorzocht. Als een binair bestand op meerdere plaatsen woont, is de eerste plaats die wordt aangetroffen de plaats die wordt gebruikt.

Houd er ook rekening mee dat meerdere bronnen van dit bestand een negatief effect zullen hebben op het blijven toevoegen van dezelfde wijzigingen, dus het is vaak zo dat je de $PATH volledig wilt terugzetten naar een consistente bekende begintoestand en deze vervolgens wilt wijzigen met dit soort commandos:

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

Path_helper gebruiken

macOS bevat ook een helper om te helpen bij het beheer van uw $PATH. Het bevindt zich hier /usr/libexec/path_helper.

Dus in plaats van handmatig je basis $PATH te maken zoals hierboven vermeld, kun je in plaats daarvan gebruik dit fragment om een bekend goed startpunt te krijgen voor uw $PATH.

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

Dit zorgt ervoor dat $PATH dus alle mappen in /etc/paths en /etc/paths.d/ worden automatisch toegevoegd.

Reacties

  • Het is misschien beter om [ -x /usr/libexec/path_helper ] && eval $(/usr/libexec/path_helper -s) te gebruiken om het pad te initialiseren, zodat alle mappen in /etc/paths en /etc/paths.d/ worden automatisch toegevoegd.
  • @nohillside is logisch. Ik was niet ' Ik ben me er niet van bewust dat macOS deze helper had, bedankt, ik ' zal toevoegen aan A ' er.
  • Heb een blik op /etc/profile. Het ' is daar niet veel aan de hand, maar in eerste instantie ising PATH maakt er deel van uit.
  • Gewoon een kop ' omhoog, mijn ~./bash_profile routeert gewoon naar ~/.bashrc, het daadwerkelijke bestand dat ik moest aanpassen.
  • @slm [ -x /usr/libexec/path_helper ] && eval $(/usr/libexec/path_helper -s) het verwijderen van het tweede deel geeft me hetzelfde resultaat als het gebruik van het eerste deel als ik source ~/.bash_profile meer dan eens gebruik. Misschien zou een uitleg van wat elk onderdeel doet nuttig zijn.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *