Ich versuche, /etc/paths.d zu verwenden, um meiner Pfadvariablen eine ausführbare Datei hinzuzufügen, aber bisher habe ich keinen Erfolg.
Der vollständige Pfad der ausführbaren Datei lautet: /opt/ImageMagick/bin/convert
/etc/paths.d enthält zwei Dateien: 40-XQuartz und ImageMagick
Der 40-XQuartz enthält eine Zeile: /opt/X11/bin
Der ImageMagick enthält eine Zeile:/opt/ImageMagick/bin
Meine echo $PATH
gibt:
/Users/Administrator/.rbenv/shims:/Users/Administrator/.rbenv/bin:/Users/Administrator/bin:/opt/local/bin:/opt/local/sbin:/usr/local/bin:/usr/local/mysql/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/X11/bin
Es scheint also, dass nur die erste Datei (40-XQuartz) ihren Job macht. Die Berechtigungen der beiden Dateien (40-XQuartz und ImageMagick) sind genau gleich. Meine Frage ist also, warum die erste funktioniert und die zweite nicht.
Ich verwende OS X Mavericks.
/etc/paths.d
funktioniert für mich, aber ich starte die von mir verwendete Terminalanwendung (in meinem Fall ITerm2) neu, damit der neue Pfad wirksam wirdAntworten:
Haben Sie eine neue Login-Shell gestartet, seit Sie die neue Datei für ImageMagick hinzugefügt haben? Die Einstellung des Pfads von
paths.d
Einträgen erfolgt in/etc/profile
und/etc/csh.login
, sodass Sie eine neue Shell starten müssen, damit die neuen Einträge wirksam werden.OS X verwendet
path_helper
, um den Pfad basierend auf den Dateien in festzulegen/etc/paths.d
- Sie können ihn jederzeit manuell aufrufen (vorausgesetzt, hier handelt es sich um eine Bourne-ähnliche Shell):quelle
Laufen
fügt
/opt/ImageMagick/bin
zuPATH
meiner Installation hinzu.Überschreiben Sie
PATH
an einem anderen Ort wie~/.bash_profile
?Die Pfade in
/etc/paths.d/
werden zu dem Pfad hinzugefügt , durch/usr/libexec/path_helper
, die aus ausgeführt wird/etc/profile
,/etc/zsh.env
und/etc/csh.login
.path_helper
wird nicht von grafischen Anwendungen ausgeführt oder wenn bash als Nicht-Login-Shell aufgerufen wird.Sie können auch einen Standard festlegen
PATH
in/etc/launchd.conf
:setenv PATH /Users/Administrator/.rbenv/shims:/Users/Administrator/.rbenv/bin:/Users/Administrator/bin:/opt/local/bin:/opt/local/sbin:/usr/local/bin:/usr/local/mysql/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/opt/ImageMagick/bin|sudo tee -a /etc/launchd.conf
.launchctl</etc/launchd.conf;sudo launchctl</etc/launchd.conf
Starten Sie die Prozesse neu oder führen Sie sie aus und starten Sie sie neu.Ich bevorzuge es, den Pfad in zu ändern
/etc/launchd.conf
, da dies auch Programme betrifft, die nicht über Shells gestartet werden, wie z. B. Texteditoren und Programme, die von Startjobs gestartet werden.quelle
Genial, ich habe nur mit dem Hinzufügen von ImageMagic zu meinem Mac rumgespielt. Sie müssen nicht nur
ImageMagick/bin
in IhrerPATH
, sondern auch eine Umgebungsvariable festlegen oder Folgendes hinzufügen:Zum Testen können Sie es manuell erstellen mit:
Informationen zum Festlegen einer Umgebungsvariablen für Mac OS finden Sie hier. Festlegen von Umgebungsvariablen in OS X?
quelle