Aggiunta di un nuovo eseguibile alla variabile d'ambiente PATH?


16

Sto cercando di installare questa libreria chiamata phantomjs.

Le istruzioni includono questa riga:

http://code.google.com/p/phantomjs/wiki/BuildInstructions

Per comodità, copia il file eseguibile / phantomjs.app / Sommario / MacOS / phantomjs in una directory del tuo PERCORSO.

Come faccio a fare questo?


Non penso che dovresti preoccuparti di metterlo sul tuo percorso poiché Bin è già dentro. Ma se lo desideri, puoi trovare come raggiungerlo qui: troubleshooters.com/linux/prepostpath.htm

@cksum ma questo è un percorso relativo; non sappiamo cosa viene prima del "cestino".
bneely

@bneely Sì, ma non esiste ~ / bin. Le uniche posizioni sono / bin, / usr / bin e / usr / local / bin. Tutti già presenti sul tuo percorso. Se esegui path, visualizzerai quanto segue per impostazione predefinita: PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/binnon ho esaminato lo script di installazione del programma in questione, ma sarebbe estremamente improbabile installarlo nella sua cartella 'bin' da qualche parte. E non è possibile aggiungere percorsi relativi AFAIK. Sono propenso a pensare solo un refuso da una guida sciatta.

So che non è possibile aggiungere percorsi relativi; Sto affermando che il percorso nella domanda è un percorso relativo perché non inizia con un / o un ~.
bneely

Risposte:


10

Per scoprire cosa c'è nel tuo PATH, aprire una finestra di terminale ed eseguire questo comando: echo $PATH. L'output è un elenco di directory separato da due punti, il cui contenuto è possibile eseguire senza specificare il percorso completo.

Dato che / usr / bin è sul mio percorso, posso eseguire il wcomando semplicemente digitando al wposto del pieno /usr/bin/w.

Inoltre, non è necessario spostare l'eseguibile in una delle directory PATH elencate. Altre opzioni includono

  • Lascia l'eseguibile dove si trova e collega a esso da una delle directory PATH
  • Aggiungi una directory al tuo PATH impostandola esplicitamente in uno script di login per la tua shell

Per favore, segui i consigli di @Gerry nell'altra risposta e collegalo simbolicamente . È il modo più pulito!
Cregox,

Se, per caso, hai bisogno di una directory completa in PATH, perché ci sono molti eseguibili in cui devi accedere, non c'è altra opzione ed è quello che PATHserve. Attualmente usiamo il ~ / .bash_profile per aggiungere al percorso .
Cregox,

20

Il modo più pulito per raggiungere questo obiettivo sarebbe collegare simbolicamente il binario nella directory / usr / local / bin (che è inclusa nel PERCORSO di default). Potrebbe essere necessario creare questa directory se non esiste ancora. Puoi verificare se queste directory sono già nel tuo PERCORSO aprendo Terminal.app e digitando:

echo $PATH

Questo genererà un elenco delimitato da due punti di tutte le directory nel tuo PERCORSO.

Se le directory / usr / local o / usr / local / bin non esistono ancora, eseguire quanto segue:

sudo mkdir -p /usr/local/bin

Collega il file binario, sostituisci (/ Applicazioni) con il percorso di phantomjs.app se differisce:

sudo ln -s /Applications/phantomjs.app/Contents/MacOS/phantomjs /usr/local/bin

Ora non dovresti avere problemi ad eseguire phantomjs dalla riga di comando.


+1,ls /usr/local/bin/ || sudo mkdir /usr/local/bin/ ; sudo ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
Jose Carlos Ramos Carmenates,

3

Tornando alla radice del problema, se stai installando phantomjs puoi usare npm per renderlo più semplice.

Se lo fai, puoi semplicemente eseguire:

npm install -g phantomjs-prebuilt

che installerà il binario all'interno della directory bin corretta. (il flag -g indica a npm che il pacchetto deve essere installato a livello globale)


0

Mentre il collegamento simbolico del file da un altro directoy funziona, preferisco effettivamente copiare / spostare il file in usr/local/bin, per non averlo "due volte".

cp bin/phantomjs.app/Contents/MacOS/phantomjs /usr/local/bin
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.