Hmm ... Począwszy od Mac OS X 10.10.5 i prawdopodobnie wcześniej, man -s5 launchd.confmówi nam: „ launchd.conf is no longer respected by the system.Mam teraz zbyt wiele rzeczy, aby umieścić zmienną fikcyjną w pliku i zrestartować, aby zobaczyć, czy to naprawdę działa, czy nie po wszystko, ale dokumentacja mówi, że to nie powinno działać.
Jestem pewien, że tak nie będzie. Zrób, man launchctla zobaczysz: „ The /etc/launchd.conf file is no longer consulted for subcommands to run during early boot time; this functionality was removed for security considerations.”
To, co możesz zrobić, to umieścić wszystkie zmienne środowiskowe, które mają być globalne, w jakimś pliku, być może wywoływanym environmentzgodnie z Linuksem lub (w przypadku, gdy Apple zdecyduje się coś z tym zrobić później - nigdy nie wiesz) environment.conf, tak jak ja, następnie zdobądź to poprzez /etc/profile:
if [ -f /etc/environment.conf ]; then
source /etc/environment.conf
fi
lub, jeśli wolisz format kompaktowy:
if [ -f /etc/environment.conf ]; then . /etc/environment.conf; fi
Jeśli używasz innej powłoki niż bash i używa tej samej składni ustawiania zmiennych co bash (podobnie jak Zsh, myślę), musisz również pobrać ten plik z ogólnosystemowego pliku rc tej powłoki (np /etc/zshrc.). Jeśli używasz powłoki, która używa innej składni, np. Tcsh, musisz albo zachować podobny plik dla tej powłoki i pobrać go z ogólnosystemowego pliku rc powłoki (np. /etc/csh.cshrcDla tcsh), albo lepiej utworzyć skrypt który automatycznie go generuje, więc musisz edytować tylko jeden plik, aby dodać / zmienić zmienne. To nie jest miejsce na taki samouczek; kilka sekund w Google dowiedział się, jak przekonwertować [t] eksport zmiennych csh do składni bash, na https://stackoverflow.com/questions/2710790/how-to-source-a-csh-script-in-bash-to -Zestaw środowisko, więc prawdopodobnie jest coś, co można pójść w innym kierunku.
Z mojego doświadczenia wynika, że Mac OS X odchodzi coraz bardziej od przewidywalnego zachowania pliku rc. Począwszy od co najmniej 10.8, nie wydaje się już ładować /etc/rc.common, /etc/rc.confani /etc/rc.<anything>też (ponieważ co najmniej 10.9) nie będzie ładował /etc/bash.bashrcinteraktywnych powłok nieloginowych (co z pewnością powinno działać, tak jak ładuje się ~/.bashrcdla nich, jednak od 10.10) . Z drugiej strony Fink, MacPorts i Homebrew instalują wszystkie rzeczy, więc może jeden z nich zakłóca domyślne zachowanie pliku kropkowego. YMMV.
/etc/environment) nie jest odczytywany, ponieważ nie jest standardem wielosystemowym - jest tylko częścią systemu Linux PAM. Mac OS X nie jest Linuksem i nie używa PAM ani innych systemów operacyjnych, o ile mi wiadomo. Udało ci się to tylko dlatego, że najwyraźniej byłeś na Linuksie. I tak, nadal jest czytany - przez Linuksa ;-)