Gerade als Entwickler kann es vorkommen, dass man die $PATH Variable, eine Umgebungsvariable des Betriebssystems, die einen oder mehrere Pfade zu bestimmten Programmen oder Daten enthält, anpassen muss.
Um die aktuell gesetzten Werte dieser Variable auszulesen, genügt einer der beiden folgenden Terminalkommandos:
echo $PATH
printf "%s\n" $PATH
Im Ergebnis werden, durch Doppelpunkt getrennt, die gesetzten Pfade angezeigt:
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/MacGPG2/bin
Doch wie passt man diese Variable nun an? Hier gibt es verschiedene Möglichkeiten:
Variante 1
Die erste Variante besteht im Editieren der zur eingesetzten Shell passenden Konfigurationsdatei. Das hat den Vorteil, dass dieses Vorgehen nutzerbasiert und somit individuell ist. Da ich beim Editor auf Vim setze, kann das beispielsweise wie folgt aussehen:
vim ~/.bash_profile
vim ~/.profile
vim ~/.bashrc
vim ~/.zshrc
Anschließend kann man in der Konfigurationsdatei über das export Kommando die PATH Variable erweitern (abspeichern nicht vergessen):
export PATH=$PATH:/new/dir/location1
Um die Änderungen direkt nutzen zu können, muss das Terminal neu gestartet oder eine der beiden folgenden Terminalkommandos ausgeführt werden:
source ~/.zshrc
. ~/.zshrc
Abschließend überprüft man über eines der ganz am Anfang des Artikels erwähnten Kommandos, ob die PATH Variable auch tatsächlich geändert wurde.
Variante 2 (Admin-Rechte erforderlich)
In dieser Variante, in der Änderungen der PATH Variable für alle Nutzer gelten, sind die Pfade in einzelnen Dateien gruppiert. Dazu werden bzw. sind bereits Dateien mit den gewollten Pfadangaben im Verzeichnis /etc/paths.d angelegt. Um sich die existierenden Einträge anzusehen, benötigt man wieder ein Terminalkommando:
ls -l /etc/paths.d
Über das anschließende cat Kommando kann man sich den Inhalt der bereits existierenden Dateien ansehen:
cat /etc/paths.d/MacGPG2
Um jetzt die PATH Variable zu erweitern, muss man in /etc/paths.d eine neue Datei anlegen und diese mit dem gewünschten Pfad befüllen. Dafür benötigt ein Terminalkommando, für das man allerdings Admin-Rechte benötigt:
sudo -s 'echo "/new/dir/location1" > /etc/paths.d/location1'
Um die Veränderungen zu übernehmen, muss man das Terminal neu starten und man sollte, wie in Variante 1, überprüfen, ob die Veränderungen tatsächlich übernommen wurden.
Variante 3 (Admin-Rechte erforderlich)
Bei dieser letzten Variante handelt es sich um eine Abwandlung der Variante 2.
Anstatt einzelne Dateien anzulegen bzw. zu editieren, knöpft man sich die zentrale Datei /etc/paths vor und kann dort zeilenweise (untereinander) Pfade ändern, löschen oder hinzufügen:
sudo vim /etc/paths
Zur Info:
/etc ist ein symbolischer Link zum Verzeichnis /private/etc
Da beide den identischen Inhalt haben, können die Änderungen von Variante 2 und 3 auch in /private/etc erfolgen.
5 Kommentare