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.