Come modificare la variabile d'ambiente PATH in OS X 10.8 Mountain Lion che sarà visibile alle applicazioni della GUI? [duplicare]


14

Ho provato tutti i metodi di cui ho sentito parlare per impostare le variabili di ambiente su OS X 10.8, ma nessuna sembra funzionare.

Per testare, esegui uno script bash all'interno di un'applicazione gui come Eclipse o IntelliJ IDEA.

#!/bin/bash
set|grep PATH

Cose che ho testato e che non funzionano anche dopo il riavvio:

  • /etc/paths e /etc/paths.d/something
  • /etc/launchd.conf
  • ~/.bash_profile
  • ~/.MacOSX/environment.plist (plist binario realizzato come raccomandato)
  • in esecuzione launchctl setenv PATH $PATHdalla riga di comando, questo doveva aggiornare il PERCORSO per le app della GUI, almeno per la sessione corrente. Indovina cosa, nessun cambiamento.

Sembra che PATH sia sempre PATH=/usr/bin:/bin:/usr/sbin:/sbinper le app GUI.


Stai bene con una soluzione che imposta il percorso bash o hai davvero bisogno di cambiare il valore di launchd del percorso base per tutti i processi?
bmike

Devo cambiare il PERCORSO utilizzato dalle app della GUI, per terminal / bash / ... Ho già un grande set di soluzioni funzionanti.
sorin,

Non so perché eclipse e altri non supportino solo le variabili di ambiente di runtime, quindi ogni sviluppatore Java su Mac non deve preoccuparsi di impostare il percorso o reperire le variabili desiderate in ogni progetto.
bmike

Risposte:


8

Con Mountain Lion /etc/launchd.confè dove impostare il percorso delle applicazioni della GUI. Ricorda che non è un file di script; supporta solo i launchctlcomandi, quindi dovresti scrivere qualcosa del tipo:

setenv PATH /new/path:/usr/bin:/bin:/usr/sbin:/sbin

Si noti inoltre che non supporta le sostituzioni di variabili di ambiente di shell (come $PATH), quindi è necessario impostare ogni percorso che si desidera includere. È una buona idea mantenere i percorsi originali che hai citato ( /usr/bin:/bin:/usr/sbin:/sbin).

Dovrai riavviare dopo aver modificato (o creato) il file per rendere effettive le modifiche.


Questo ha funzionato per me in 10.8.2 per impostare un PERCORSO utilizzabile con Keyboard Maestro.
TJ Luoma,

La pagina man dice che puoi usare $ HOME / .launchd.conf ma che non ha funzionato per me. Utilizzando /etc/launchd.conf ha fatto. Sono il 10.8.4
pedz,

Per me non funziona:-bash: setenv: command not found
Colas,

Se qualcuno era confuso come Colas, setenvè un launchctlcomando, quindi lo usi come launchctl setenv.
Jon Shier,

3

Funziona se chiami l'app GUI dal Terminale:

PATH=/this/is/kind/of/crazy:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin /Applications/Automator.app/Contents/MacOS/Automator 

inserisci qui la descrizione dell'immagine

Non molto carino o comodo ma fa il lavoro se necessario.


Tra poco NO MODO. Non sono disposto a farlo, funzionerà solo qualche volta. L'app può essere avviata anche quando fai clic su un file.
sorin,

2
Come ho già detto, non è davvero bello, ma potrebbe funzionare fino a quando Apple non risolverà il problema (perché dovrebbe essere possibile con launchctl).
Nohillside

2

Ho preparato un'altra soluzione, ispirata a patrix qui , che si spera sia un po 'meno dolorosa. Apri Automator, seleziona un'applicazione come destinazione e scegli Execute Shell script(o come si chiama, in tedesco è "Shell-Skript ausführen" come si può vedere sopra) come azione. Nello script, basta digitare

launchctl setenv FOO1 bar1
[...]
launchctl setenv FOOn barn
open -a YourApplicationHere

Quindi salva il tutto dove vuoi e, se devi eseguire YourApplicationHere , apri invece l'applicazione "automator" creata.

Ho provato questo con Terminalcome YourApplicationHere , e ha visto con launchctl exportche FOO era davvero messo al bar . Spero che funzioni anche per gli altri.

Infine, se usi questa soluzione per le tue variabili di ambiente, invece di digitare le launchctlcose nello script della shell, potresti semplicemente chiamare /Users/Shared/conflaunchd.sh(che devi inventare prima, insieme al file che descrive le variabili).


-1

Presumibilmente, launchctlfornisce PATHal GUI Apps. Per impostare il percorso a quello del percorso della shell, aggiungere quanto segue al file rc della shell dopo aver impostato il percorso:

launchctl setenv PATH $PATH

1
Purtroppo questo non funziona :-(
nohillside


Consentiamo risposte che fanno uno sforzo in buona fede per rispondere alla domanda. Consentiamo persino risposte sbagliate e lasciamo che la votazione parli per correttezza. Commentare senza renderlo personale è il modo migliore per creare un buco in una discussione difettosa piuttosto che scoraggiare i tentativi di risposta.
bmike
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.