In Mountain Lion come posso impostare, in un posto, la variabile d'ambiente PATH per tutte le nuove applicazioni lanciate?

9

In Ask Different ci sono molte domande riguardanti la variabile di ambiente PATH e come impostarla per le applicazioni lanciate da una shell, da spotlight o tramite il finder (domande tipiche: Come impostare PATH per le applicazioni avviate dal Finder o Come modificare la variabile d'ambiente PATH ... ).

Le risposte vanno da sh script di avvio a /etc/paths a /etc/launchd.conf . Eccomi qui dopo la risposta per l'impostazione unificata di PATH per tutte le app in Mac OS X Mountain Lion 10.8.2.

    
posta halloleo 30.03.2013 - 11:55
fonte

3 risposte

13

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.
  • : 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:

  1. 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 . **

  2. 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.
risposta data 30.03.2013 - 11:55
fonte
3

Espandendo su la precedente risposta , per modificare il percorso in /etc/launchd.conf , devi eseguire il seguente.

  1. Assicurati di disporre dei privilegi di amministratore.

  2. Crea un nuovo file di testo con il seguente contenuto, modificato per soddisfare le tue esigenze:

    setenv PATH /usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/Users/YourUserName/bin
    
  3. salvalo nella tua directory home come launchd.conf .

  4. Apri Terminal.app (o il tuo sostituto preferito) e digita:

    sudo mv ~/launchd.conf /etc

    A seconda dell'utilizzo precedente del comando sudo , potresti ricevere un breve messaggio "fai attenzione a ciò che stai facendo", ma in entrambi i casi devi inserire la tua password. Tutto il comando fa è spostare il file nella directory /etc , che non è direttamente accessibile quando si salva un file in TextEdit, ad esempio. sudo (abbreviazione di "Super User DO") viene utilizzato perché i privilegi di amministratore sono necessari per scrivere in quella directory.

  5. Riavvia il computer.

E dovresti essere tutto pronto. Buona fortuna!

    
risposta data 06.08.2013 - 09:23
fonte
-2

Puoi provare link a provare.

Gestisce entrambe le app della riga di comando e della GUI da una fonte singola . E funziona con l'ultima versione di OS X (Yosemite).

    
risposta data 07.09.2015 - 20:59
fonte

Leggi altre domande sui tag