Dopo molte prove con diverse opzioni concludo:
C'è un modo unificato per impostare PATH
per le applicazioni lanciate con diversi mezzi (come script di shell, Finder e Spotlight)? Bene, sì e no:
-
No : l'impostazione di
PATH
negli script di avvio della shell (ad esempio .bashrc
) funziona solo per le app lanciate dalle shell.
-
No : l'impostazione di
PATH
per il processo launchd
corrente tramite launchctl setenv PATH <...>
non funziona affatto per me.
-
Sì : l'impostazione di
PATH
in /etc/launchd.conf
(e il riavvio del sistema) renderà visibile il PATH
appropriato nelle applicazioni lanciate da Spotlight, Dock e Finder e successivamente shell (locali).
-
No : le shell invocate in remoto fanno non ereditano l'ambiente. (vedi ...perché le shell remote tramite ssh NON ereditano l'ambiente .. )
Note per l'impostazione delle shell:
-
Per il corretto funzionamento nelle shell locali è importante disattivare l'uso di /usr/libexec/path_helper
, perché i percorsi predefiniti in /etc/paths
potrebbero cambiare il ordine dei percorsi in PATH
. **
-
Per ospitare le shell remote devi reimportare l'ambiente launchd
nella shell. Usa qualcosa di simile in .bashrc
:
# the vexatious path stuff
eval $(launchctl export)
Le sfortunate conseguenze dell'intero problema sono:
- Non c'è modo di avere queste impostazioni unificate per utente. (
~/.launchd.conf
non funziona.)
- Non è un modo semplice per costruire il PERCORSO da diverse fonti usando tecniche come l'espansione della directory home et al.