Hmm ... A partire da Mac OS X 10.10.5 e probabilmente prima, man -s5 launchd.conf
ci dice: " launchd.conf is no longer respected by the system.
" Ho troppe cose in corso in questo momento per mettere una variabile fittizia nel file e riavviare per vedere se funziona davvero o no dopo tutto, ma la documentazione dice che non dovrebbe funzionare.
Sono abbastanza sicuro che non lo farà. Fai man launchctl
e vedrai: " The /etc/launchd.conf file is no longer consulted for subcommands to run during early boot time; this functionality was removed for security considerations.
"
Quello che puoi fare è mettere tutte le variabili d'ambiente che vuoi essere globali in qualche file, forse chiamate environment
in linea con Linux, o (nel caso in cui Apple decida di fare qualcosa in seguito - non lo sai mai) environment.conf
, come ho fatto io, quindi procuratelo via /etc/profile
:
if [ -f /etc/environment.conf ]; then
source /etc/environment.conf
fi
oppure, se si preferisce il formato compatto:
if [ -f /etc/environment.conf ]; then . /etc/environment.conf; fi
Se usi qualche altra shell oltre a bash, e usa la stessa sintassi a impostazione variabile di bash (come fa zsh, credo), dovrai anche estrarre questo file dal file rc dell'intero sistema della shell (ad es /etc/zshrc
.). Se si utilizza una shell che utilizza una sintassi diversa, ad esempio tcsh, è necessario mantenere un file simile per quella shell e originarlo dal file rc dell'intero sistema della shell (ad esempio /etc/csh.cshrc
per tcsh), o meglio creare uno script che lo genera automaticamente, quindi devi solo modificare un file per aggiungere / cambiare variabili. Questo non è il posto giusto per un simile tutorial; alcuni secondi su Google hanno scoperto come convertire [t] esportazioni di variabili csh in sintassi bash, su https://stackoverflow.com/questions/2710790/how-to-source-a-csh-script-in-bash-to -set-the-ambiente, quindi probabilmente c'è qualcosa disponibile per andare nell'altra direzione.
È stata la mia esperienza che Mac OS X si sta allontanando sempre di più dal prevedibile comportamento dei file rc. Come di almeno 10,8, non sembra più a caricare /etc/rc.common
, /etc/rc.conf
o /etc/rc.<anything>
, né (almeno dal 10,9) Sarà caricare /etc/bash.bashrc
per le shell nonlogin interattive (che certamente dovrebbe fare, proprio come i carichi ~/.bashrc
per loro, ancora, come di 10,10) . Poi di nuovo ho installato Fink, MacPorts e Homebrew, quindi forse uno di loro sta interferendo con il comportamento dotfile predefinito. YMMV.
/etc/environment
) non viene letto perché non è uno standard tra sistemi: fa solo parte della funzione PAM di Linux. Mac OS X non è Linux e non utilizza PAM né altri sistemi operativi a mia conoscenza. Ci sei riuscito solo perché apparentemente su Linux. E sì, si legge ancora - da Linux ;-)