Yosemite
/etc/launchd.conf
wird in 10.10 nicht mehr unterstützt. Siehe man launchctl
:
Die Datei /etc/launchd.conf wird nicht mehr für Unterbefehle herangezogen, die während der frühen Startzeit ausgeführt werden sollen. Diese Funktionalität wurde aus Sicherheitsgründen entfernt.
Sie können diese Liste jetzt beispielsweise speichern als ~/Library/LaunchAgents/my.startup.plist
:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>my.startup</string>
<key>ProgramArguments</key>
<array>
<string>sh</string>
<string>-c</string>
<string>launchctl setenv PATH /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
Der launchctl setenv
Befehl wird als Benutzer ausgeführt und gilt daher nur für Prozesse, die in der Benutzerdomäne gestartet wurden.
Diese Methode gilt nicht für Anwendungen, die beim Anmelden erneut geöffnet werden, wenn "Fenster beim erneuten Anmelden erneut öffnen" aktiviert ist.
Mavericks und früher
In 10.9 und früher können Sie beispielsweise ausführen
echo setenv PATH /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin|sudo tee -a /etc/launchd.conf
und dann neu starten, um die Änderungen zu übernehmen.
Andere Methoden
/etc/paths
und /etc/paths.d/
nur (oder hauptsächlich) auf Muscheln anwenden. Die Linien in /etc/paths
und /etc/paths.d/*
werden zu dem Pfad durch hinzugefügt path_helper , die aus ausgeführt wird /etc/profile
, /etc/zshenv
und /etc/csh.login
. Ich kenne keine anderen Programme als Shells, die /etc/paths
oder berücksichtigen würden /etc/paths.d/
.
~/.MacOSX/environment.plist
hat in 10.8 aufgehört zu arbeiten.
/etc/launchd.conf
wurde in 10.10 entfernt.launchctl setenv
.launchctl setenv
hat nie bestehende Prozesse beeinflusst.Es gibt einen viel einfacheren Weg. Legen Sie eine Textdatei in den Ordner
/etc/paths.d/
. Geben Sie in dieser Textdatei den gewünschten Pfad UND eine neue Zeile ein. Am besten erstellen Sie für jeden Pfad eine neue Datei.Auf meinem System gibt es eine Datei namens MySQL mit dem Text '/ usr / local / mysql / bin' und einer neuen Zeile.
quelle
Möglicherweise können Sie Umgebungsvariablen in der Datei festlegen
/etc/launchd-user.conf
...In Mavericks konnte ich eine Umgebungsvariable in der Datei folgendermaßen konfigurieren:
Nach einem
$TEST
Neustart wird von /etc/launchd-user.conf gesetzt.Bearbeiten
Möglicherweise ist die Syntax der Datei unter /etc/launchd.conf ungültig. Können Sie den Inhalt dieser Datei zur Prüfung bereitstellen?
Nach dem, was ich sehe, funktioniert das Setzen der PATH-Variablen in /etc/launchd.conf normal. Führt
launchd
jedoch keine Parametererweiterung durch . Wenn Sie also einen Eintrag wiesetenv PATH $PATH:/usr/local/bin
"$PATH:/usr/local/bin
" haben , wird der resultierende Pfad auf " " gesetzt (Hinweis: Nicht der Wert von PATH, sondern der Text "$ PATH").quelle
Auf meiner Mavericks-Installation hat das Hinzufügen von "setenv PATH blablabla" zu /etc/launchd.conf nach dem Neustart nicht funktioniert
Also habe ich meinen neuen Pfad an das Ende von / etc / arrows angehängt, was funktioniert hat.
quelle
/etc/paths
enthält alles , was ich will, und dennoch sieht Sublime nur den ursprünglichen Pfad. Wenn ich es vom Terminal aus starte, funktioniert es.Ich habe festgestellt, dass setenv PATH für Terminal und Anwendungen immer noch funktioniert, aber Shell-Skripte eingebrochen hat, die direkt über das Klicken oder Öffnen mit in Terminal von beispielsweise Finder gestartet wurden. Es ist sehr seltsam. Andere Umgebungsvariablen in
/etc/launchd.conf
Arbeit gesetzt.Um das Problem bei direkt gestarteten Shell-Skripten zu beheben, habe ich die PATH-Einstellung in dupliziert
~/.bash_profile
.quelle
Das Bearbeiten
/etc/paths.d
oder Verwenden.bash_profile
hat bei mir nicht funktioniert, aber wie von jemand anderem vorgeschlagen (ich bin tatsächlich hierher gekommen, um seine Antwort zu bewerten, aber ich konnte sie nicht wiederfinden ?!), ich habe das bearbeitet,/etc/paths
was bei mir funktioniertIn meinem Fall habe ich Android-Tool
adb
undandroid
Terminal-Befehle hinzugefügt, die auf ihre SDK-Pfade verweisen (adb
die heutzutage in ein anderes Verzeichnis verschoben wurden), die so aussehenquelle
Mit SWEET und dem Hinzufügen dieses XML zu ~ / Library / LaunchAgents / setenv.SVN.plist konnte BBEdit die in / opt installierten Subversion-Binärdateien verwenden.
quelle
Fügen Sie einfach Ihren 'bin'-Pfad (den Pfad, den Sie hinzufügen möchten) zur Datei / etc / arrows hinzu - starten Sie neu oder melden Sie sich neu an !!!
speichere die Datei und logge dich neu ein ... hoffe das hilft
quelle