2009-02-15 8 views
14

Ho cercato di includere le seguenti senza successo alla mia ~/.profile:

export PATH='$HOME/opt/git/bin' 

Non sembra funzionare perché $ git mi dà niente. Sto cercando di installare Git.

Ho anche provato comandi here.

+0

Sei sicuro che il tuo git sia installato in $ HOME/opt/git e non solo/opt/git? – mattiast

risposta

19

Avrai voglia di stare attenti con quel comando. Sarà ignorare il tuo $ PATH.

Potrebbe essere necessario metterlo in ~/.bash_profile e modificarlo in questo modo:

export PATH="$HOME/opt/git/bin:$PATH" 
+0

Il tuo codice funziona in ~/.profile dopo il riavvio del terminale. Grazie! –

+0

Felice che abbia funzionato! Ho votato la tua domanda. – matpie

1

Questo avrebbe dovuto funzionare.

Dove punta $ HOME?

Assicurarsi che $ HOME/opt/git/bin contiene in realtà un file eseguibile denominato git.

+0

Per aggiungere qualcosa al percorso, penso che non sia necessario che il file esista effettivamente – Eduardo

+0

$ HOME punta a/home/mas. Questo ciò che $ HOME/opt/git/bin contiene: http://dl.getdropbox.com/u/175564/opt-git-bin.png –

2

è necessario eliminare il '', provate questo

export PATH=$HOME/opt/git/bin 

E per non sovrascrivere tutto il tuo percorso provare questo:

export PATH=$PATH:$HOME/opt/git/bin 
+1

Nella maggior parte dei casi, che ci si vuole anteporre percorsi specifici di utenti, non suffix loro, in modo che abbiano la priorità. –

+0

Nessuna modifica, quando ho provato il tuo codice in ~/.profile. –

8

Come SirLancelot sottolineato, di reimpostare il vostro percorso, piuttosto che aumentare esso. Hai anche utilizzato le virgolette singole anziché le doppie virgolette, quindi il set di valori era esattamente la stringa mostrata, anziché contenere il valore espanso di $ HOME. Come notato, la soluzione corretta a questo è quello di utilizzare:

export PATH="$PATH:$HOME/opt/git/bin" 

Oppure si può invertire l'ordine:

export PATH="$HOME/opt/git/bin:$PATH" 

Tuttavia, tutto ciò che fa è assicurare che quando si digita git, l'eseguibile sarà trovato.

La tua domanda menziona anche utilizzando $git; si dovrebbe impostare quella variabile, magari utilizzando:

export git=$(which git) 

Detto questo, non vedo un vantaggio di utilizzare $git quando git è sul vostro cammino; è un carattere in più da digitare (e anche una cifra spostata). Se si desidera continuare a utilizzare $git, probabilmente non si dovrebbe aggiungere $HOME/opt/git/bin a PATH. La sua presenza rallenta le ricerche di comando senza successo, e se si accedere sempre git via $git (che sarebbe ora essere impostato con: export git=$HOME/opt/git/bin/git) non v'è alcun vantaggio di avere la directory bin git sul vostro cammino.


Masi ha commentato su ordine che è priva di senso, e Douglas Leeder risposto:

L'ordine non è priva di significato - è l'ordine [in cui le directory sono] cercato.Tuttavia, git non si trova in nessuna delle tue altre directory di ricerca e non dovrebbe esserci alcuna sovrapposizione tra i comandi nella directory bin git e nessun altro, quindi l'ordine non farà alcuna differenza in questo caso.

Questo è fondamentalmente preciso, ma lo farò girare un po '. Quando viene cercato un comando, il sistema cerca il programma cercandolo in ogni directory in PATH finché non lo trova. Quindi, quando cerca ls, ad esempio, con la directory bin git nella parte anteriore del PERCORSO, le shell cercheranno $HOME/opt/git/bin/ls e non lo troveranno e passeranno ad altre directory nel PATH, trovandolo infine in /usr/bin/ls o /bin/ls. Alcune shell memorizzano nella cache la posizione in cui viene trovato un programma; gli altri no. Pertanto, può avere senso mantenere /bin e /usr/bin vicino alla parte anteriore del PERCORSO, per accelerare l'accesso alle utilità standard. Tengo sempre $HOME/bin nella parte anteriore del mio PERCORSO; in questo modo, posso ignorare qualsiasi cosa con la mia versione personale - e lo faccio per alcuni comandi.

Inoltre, sulla mia macchina di lavoro principale, la directory /usr/local/bin non è sotto il mio controllo. Non mi fido, quindi, e mi assicuro che sia giusto alla fine del mio PERCORSO, quindi l'antico GCC in esso non è quello che uso, per esempio. [Hmmm; lo hanno aggiornato alla 3.4.6; era 2.95 o giù di lì; ancora, io uso 4.3.3.]

più Un suggerimento per voi. Prendi in considerazione la possibilità di creare un link simbolico nel tuo $HOME/bin (ammesso che tu ne abbia uno ed è sul tuo PERCORSO) che punta al percorso di installazione di git. Ciò significa che non si aggiunge una directory aggiuntiva a PATH (quindi le cose funzionano marginalmente più velocemente) ma si può usare la versione di git che si sceglie di utilizzare.

ln -s $HOME/opt/git/bin/git $HOME/bin/git 
+0

Grazie! Non sapevo che l'ordine non ha senso. –

+0

L'ordine non è privo di significato, è l'ordine che ha cercato, tuttavia git is not è una delle tue altre directory di ricerca e non dovrebbe esserci alcuna sovrapposizione tra i comandi nella directory git bin e gli altri in modo che l'ordine vada non fare alcuna differenza in questo caso. –

Problemi correlati