Installa git sul server senza sudo


1

Sto cercando di installare git su un server con un utente che non ha accesso root. Ho visto molti tutorial che suggeriscono l'utilizzo ./configure, ma quando ho scaricato l'ultimo git zip da github, non c'era questo tipo di file. Apparentemente dovrebbe funzionare solo con make e make installma quando corro make, Ottengo errori:

In file included from credential-store.c:1:
cache.h:21: error: expected specifier-qualifier-list before 'z_stream'
make: *** [credential-store.o] Error 1

Apparentemente questo ha a che fare con zlib non essere installato. Posso scaricare zlib, ma non ho idea di come ottenere git per sapere dove l'ho installato. Potrebbero esserci anche altre dipendenze, ma probabilmente posso gestirle in un modo simile.

Mi piacerebbe anche solo avere il git eseguibile da solo in /home/user/bin senza altre cartelle o crap in là. C'è un modo per scaricare l'eseguibile compilato? Perché anche quello andrebbe bene.


Quale sistema operativo e / o distro?
jjlin

@jjlin Spremere Debian
Explosion Pills

Risposte:


1

Anche se attualmente non ho il tempo di fornire una risposta super dettagliata, posso delineare una possibile strategia per eseguire gli eseguibili da una pre-compilazione git pacchetto sotto la tua home directory. Questa risposta è rivolta a Debian, poiché è quello che hai detto che stai usando, ma il concetto di base è applicabile anche ad altri sistemi operativi e distro.

Per prima cosa vai a http://packages.debian.org/squeeze/git e rivedere le dipendenze del git pacchetto. Fortunatamente, lo troverai git non ce ne sono così tanti La maggior parte di quelli importanti è probabilmente già installata, forse ad eccezione di libcurl3-gnutls e libexpat1.

Successivamente, scarica il pacchetto .deb binario ed estrai il suo contenuto (cerca sul Web per scoprire come estrarre manualmente un pacchetto .deb). Troverete a data.tar.gz file. Estrai quello e otterrai usr/bin/git* e usr/lib/git-core/* File. Puoi mettere questi file da qualche parte sotto la tua home directory. Ora la parte critica: /usr/bin/git chiama numerosi programmi "helper" sotto /usr/lib/git-coree quest'ultimo percorso è codificato in /usr/bin/git. Fortunatamente, puoi sovrascrivere il valore hardcoded impostando il GIT_EXEC_PATH variabile di ambiente, quindi aggiorna i tuoi punti per indicare dove hai deciso di mantenere i vari /usr/lib/git-core File.

Infine, è possibile che non tutte le dipendenze della libreria (e le loro dipendenze, ecc. Ecc.) Siano state installate sul tuo sistema (ad es. libcurl3-gnutls, libexpat1 ). Puoi anche scaricare i pacchetti binari per questi, ed estrarli nella tua home directory, e poi aiutare git trovali impostando il tuo LD_LIBRARY_PATH variabile di ambiente in modo appropriato.

Post scriptum Probabilmente ho avuto più della mia giusta quota di essere nella tua posizione, quindi quello che ho delineato sopra è più che teorico. Ma lavorare su questo tipo di problema è un po 'un'arte nera, quindi di solito ci sarà un po' di complicazioni aggiuntive. In bocca al lupo.


Ho scaricato il nucleo da ftp.us.debian.org/debian/pool/main/g/git/... e ho cercato come estrarre il deb, ma quando ho fatto tutto quello che c'è, c'è usr/share/doc/git-core che è un link simbolico a un inesistente git file nella stessa directory. C'è un altro posto per scaricare il .deb?
Explosion Pills

Devi scaricare il git pacchetto, no git-core.
jjlin

0

Hai un lotto di lavoro davanti a te. Devi assicurarti che siano disponibili o che wget o curl ti siano disponibili, poiché avrai bisogno dell'uno o dell'altro per ottenere gli archivi necessari di cui hai bisogno se i pacchetti appropriati non sono installati.

Creare un

/home/youruser/src directory ( mkdir -p /home/youruser/src ).

cd nella directory src e ottieni il codice sorgente per git

wget http://git-core.googlecode.com/files/git-1.7.11.2.tar.gz

Decomprimilo e fallo

./configure --help

Questo ti mostrerà tutti i pacchetti necessari di cui avrai bisogno, come expat, openssl, ecc. Dovrai scaricarli tutti, costruirli e installarli in /home/youruser Quando avrai finito lo avrai /home/youruser/bin insieme a diversi necessaria le directory.

Per favore, leggi il file INSTALL nella directory untarred e pubblica i tuoi progressi.


Il git a cui ti sei collegato è un po 'diverso (ho capito il github fonte che non ha configure affatto). mi sono imbattuto ./configure --with-zlib=/home/myname/zlib/ (questa directory esiste). Non sembrava lamentarsi. Tuttavia, quando corro make Ottengo lo stesso errore di cui sopra che sembra essere una mancanza di zlib. Sono bloccato lì.
Explosion Pills

Ora, è necessario scaricare il sorgente su zlib, decomprimere il tarball, fare a ./configure --prefix=/home/youruser && make && make install e riprova il git. Come ho detto, se lo fai ./configure --help con git otterrai una lista di pacchetti che vorranno avere, sono contrassegnati [default=yes] o qualcosa di simile.
thisfeller

Nota: tutto questo lavoro è fatto per te con github.com/VonC/compileEverything
VonC
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.