Come usare /etc/paths.d per aggiungere file eseguibili al mio percorso?

12

Sto provando ad usare /etc/paths.d per aggiungere un eseguibile alla mia variabile percorso, ma finora non ho avuto successo.

Il percorso completo del file eseguibile è: /opt/ImageMagick/bin/convert

/etc/paths.d contiene due file: 40-XQuartz e ImageMagick

40-XQuartz contiene una riga: /opt/X11/bin
ImageMagick contiene una riga: /opt/ImageMagick/bin

Il mio echo $PATH restituisce:

/Users/Administrator/.rbenv/shims:/Users/Administrator/.rbenv/bin:/Users/Administrator/bin:/opt/local/bin:/opt/local/sbin:/usr/local/bin:/usr/local/mysql/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/X11/bin

Quindi sembra che solo il primo file (40-XQuartz) faccia il suo lavoro. Le autorizzazioni dei due file (40-XQuartz e ImageMagick) sono esattamente le stesse, quindi la mia domanda è perché il primo funziona e il secondo no.

Sto eseguendo OS X Mavericks.

    
posta skiabox 27.04.2014 - 17:21
fonte

3 risposte

14

Hai iniziato una nuova shell di login da quando hai aggiunto il nuovo file per ImageMagick? L'impostazione del percorso dalle voci paths.d viene eseguita in /etc/profile e /etc/csh.login , quindi è necessario avviare una nuova shell per rendere effettive le nuove voci.

OS X utilizza path_helper per impostare il percorso in base ai file in /etc/paths.d - puoi sempre chiamarlo manualmente (assumendo qui una shell di tipo Bourne):

$ eval '/usr/libexec/path_helper -s'
    
risposta data 27.04.2014 - 18:17
fonte
2

Esecuzione

echo /opt/ImageMagick/bin|sudo tee /etc/paths.d/ImageMagick;bash -l;echo $PATH

aggiunge /opt/ImageMagick/bin a PATH sulla mia installazione.

Stai sovrascrivendo PATH in un altro posto come ~/.bash_profile ?

I percorsi in /etc/paths.d/ vengono aggiunti al percorso di /usr/libexec/path_helper , che viene eseguito da /etc/profile , /etc/zsh.env e /etc/csh.login . path_helper non è eseguito da applicazioni grafiche o quando bash è invocato come shell non di login.

Puoi anche impostare un PATH predefinito in /etc/launchd.conf :

  1. Esegui ad esempio setenv PATH /Users/Administrator/.rbenv/shims:/Users/Administrator/.rbenv/bin:/Users/Administrator/bin:/opt/local/bin:/opt/local/sbin:/usr/local/bin:/usr/local/mysql/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/opt/ImageMagick/bin|sudo tee -a /etc/launchd.conf .
  2. Riavvia o esegui launchctl</etc/launchd.conf;sudo launchctl</etc/launchd.conf e riavvia i processi.

Preferisco modificare il percorso in /etc/launchd.conf , perché riguarda anche i programmi che non sono stati avviati dalle shell, come editor di testo e programmi avviati dai lavori di avvio.

    
risposta data 30.04.2014 - 11:29
fonte
0

Fantastico, stavo solo giocando con l'aggiunta di ImageMagic al mio Mac. Non solo hai bisogno di ImageMagick/bin nel tuo PATH , hai anche bisogno di un set di variabili d'ambiente o aggiunto a:

Per testare puoi crearlo manualmente con:

export DYLD_LIBRARY=".:/opt/ImageMagic/lib"

Le informazioni per l'impostazione di una variabile di ambiente per Mac OS possono essere trovate qui, Impostazione delle variabili di ambiente in OS X?

    
risposta data 06.07.2017 - 22:15
fonte

Leggi altre domande sui tag