Come posso modificare il percorso che viene cercato per l'avvio di un'applicazione?


0

Sto cercando di avviare il compilatore DMD del linguaggio di programmazione D, ma il terminale sta dando il seguente errore:

dmd: failed to launch executable at /Library/Compilers/dmd2/osx/bin/dmd

Ma non c'è una cartella chiamata dmd2sotto /Library/Compilers.

Posso avviare il compilatore DMD da questo percorso /usr/bin/dmd, ma non voglio digitare questo percorso ogni volta che devo compilare un file di codice sorgente.

Questo è il mio $PATH:

/Library/Frameworks/Python.framework/Versions/2.7/bin:/Library/Frameworks/Python.framework/Versions/3.4/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin: / sbin: / opt / X11 / bin: / usr / texbin

C'è un modo in cui quando scrivo dmdsi avvia /usr/bin/dmd, invece di provare a scrivere un compilatore sotto /Library/Compilers/dmd2/osx/bin/dmd?


1
Qual è il tuo output di echo $PATH?
Mateusz Szlosek,

1
Come hai installato dmd (e nota anche che non va bene installarlo in / usr / bin)
Mark

@MateuszSzlosek Ha modificato la mia domanda.
nbro,

@Mark Penso che fosse la directory predefinita, oppure è stata installata da un altro programma o aggiornamento .. Non ricordo di aver impostato esplicitamente il percorso di installazione ..
nbro

Cosa type -p dmdmostra? Questo è il dmd che stai effettivamente eseguendo
Mark

Risposte:


1

Per rispondere alla tua domanda, il tuo PERCORSO deve essere modificato in:

PATH=/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/Library/Frameworks/Python.framework/Versions/2.7/bin:/Library/Frameworks/Python.framework/Versions/3.4/bin:/opt/X11/bin:/usr/texbin

così che la tua shell troverà /usr/bin/dmd prima di ogni altra chiamata all'interno di una delle 2 Pythondirectory della libreria.

Nota: è una pratica pericolosa consentire a qualsiasi software non distribuito da Apple di installare qualcosa all'interno /usr/bin(o /bin, /sbino /usr/sbin). Questa è una tecnica utilizzata da crapware per nascondersi.


Il mio secondo § è ispirato al primo commento di @Mark :).
dan

0

Se /usr/bin/dmdfunziona e il tuo percorso contiene /usr/bin, e il tuo percorso viene esportato, puoi semplicemente digitare dmd. Altrimenti puoi cambiare il tuo percorso in questo modo:

echo "export PATH=\"/usr/bin:$PATH\"" >> .profile

dopodiché ogni nuovo terminale avrà il percorso desiderato. (questo è il metodo usato da homebrew, macport, ecc.)


So che funzionerebbe, ma sembra che prima stia cercando su un altro percorso, ma non lo sta trovando ...
nbro

assicurati che il tuo PERCORSO sia esportato affinché funzioni.
user1133275

0

se l'unica cosa che devi chiamare è dmd, che ne dici di mettere un alias nel tuo ~ / .profile?

aggiungi questo a .profile:

alias dmd='/usr/bin/dmd'

quindi aprire un nuovo terminale o digitare source ~ / .profile per riavviare .profile.

È inoltre possibile digitare il comando alias direttamente nel terminale e testarlo prima. Ma non sarà in giro la prossima volta a meno che non lo metti in ~ / .profile.

Lo faccio parecchio. Non mi piace pasticciare con il PERCORSO per ogni singola app che necessita di lanci bash ed evita di fare qualcos'altro per errore.

Quindi digiti:

dmd ... i tuoi argomenti ...

essenzialmente, l'alias qui fa esattamente quello che non vuoi fare, digita / usr / bin / dmd.

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.