Installieren Sie git auf dem Server ohne Sudo

9368
Explosion Pills

Ich versuche gitauf einem Server mit einem Benutzer zu installieren, der keinen Root-Zugriff hat. Ich habe eine Menge Tutorials gesehen, die die Verwendung empfehlen ./configure, aber als ich die neueste Git Zip von Github heruntergeladen habe, gab es keine solche Datei. Anscheinend sollte es einfach mit makeund funktionieren make install, aber wenn ich renne make, bekomme ich Fehler:

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 

Anscheinend hat das damit zu tun, dass es zlibnicht installiert wurde. Ich kann herunterladen zlib, gitweiß aber nicht, wo ich es installiert habe. Es kann auch andere Abhängigkeiten geben, aber ich kann wahrscheinlich auf ähnliche Weise damit umgehen.

Ich hätte auch gerne die gitausführbare Datei alleine, /home/user/binohne andere Ordner oder Mist. Gibt es eine Möglichkeit, die kompilierte ausführbare Datei einfach herunterzuladen? Weil das auch gut wäre.

1
Welches Betriebssystem und / oder welche Distribution? jjlin vor 12 Jahren 0
@jjlin Debian Squeeze Explosion Pills vor 12 Jahren 0
Siehe auch https://github.com/VonC/compileEverything VonC vor 12 Jahren 0

2 Antworten auf die Frage

1
jjlin

Ich habe momentan keine Zeit, eine sehr detaillierte Antwort zu geben, aber ich kann eine mögliche Strategie für das Ausführen von ausführbaren Dateien aus einem vorgefertigten gitPaket unter Ihrem Home-Verzeichnis beschreiben. Diese Antwort richtet sich an Debian, da Sie dies bereits verwendet haben. Das grundlegende Konzept ist jedoch auch auf andere Betriebssysteme und Distributionen anwendbar.

Gehen Sie zunächst zu http://packages.debian.org/squeeze/git und überprüfen Sie die Abhängigkeiten des gitPakets. Zum Glück werden Sie feststellen, dass gites nicht so viele davon gibt. Die meisten wichtigen sind wahrscheinlich bereits installiert, möglicherweise mit Ausnahme von libcurl3-gnutlsund libexpat1.

Laden Sie als Nächstes das binäre .deb-Paket herunter und extrahieren Sie dessen Inhalt (durchsuchen Sie das Web, um herauszufinden, wie Sie ein .deb-Paket manuell extrahieren können). Sie finden eine data.tar.gzDatei. Extrahieren Sie das, und Sie erhalten usr/bin/git*und usr/lib/git-core/*Dateien. Sie können diese Dateien irgendwo in Ihrem Heimatverzeichnis ablegen. Nun der kritische Teil: /usr/bin/gitruft zahlreiche "Helfer" -Programme auf /usr/lib/git-core, und dieser letztere Pfad ist hart codiert /usr/bin/git. Glücklicherweise können Sie den festcodierten Wert überschreiben, indem Sie die GIT_EXEC_PATHUmgebungsvariable festlegen. Aktualisieren Sie Ihre Dotfiles so, dass sie auf den Punkt verweisen, an dem Sie die verschiedenen /usr/lib/git-coreDateien behalten möchten .

Schließlich ist es möglich, dass nicht alle der Bibliothek Abhängigkeiten (und deren Abhängigkeiten, etc, etc) wurden auf dem System installiert ist (zB libcurl3-gnutls, libexpat1). Sie können auch die Binärpakete für diese Programme herunterladen, sie unter Ihrem Home-Verzeichnis extrahieren und dann bei der gitSuche helfen, indem Sie Ihre LD_LIBRARY_PATHUmgebungsvariable entsprechend festlegen.

PS: Ich hatte wahrscheinlich mehr als meinen gerechten Anteil an meiner Position. Was ich oben skizziert habe, ist mehr als theoretisch. Aber diese Art von Problem zu lösen, ist ein bisschen schwarz, so dass es in der Regel zusätzliche Aufregungen geben wird. Viel Glück.

Ich habe den Kern von http://ftp.us.debian.org/debian/pool/main/g/git/git-core_1.7.10.4-1_all.deb heruntergeladen und nachgeschaut, wie man das deb extrahiert, aber wenn ich Alles, was es gibt, ist "usr / share / doc / git-core", ein Symlink zu einer nicht existierenden "git" -Datei im selben Verzeichnis. Gibt es einen anderen Ort zum Herunterladen der .deb-Datei? Explosion Pills vor 12 Jahren 0
Sie müssen das "git" -Paket herunterladen, nicht "git-core". jjlin vor 12 Jahren 0
0
thisfeller

Sie haben viel Arbeit vor sich. Sie müssen sicherstellen, dass entweder Wget oder Curl für Sie verfügbar ist, da Sie das eine oder das andere benötigen, um die erforderlichen Tarballs zu erhalten, wenn die entsprechenden Pakete nicht installiert sind.

Ein ... kreieren

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

cd in das src-verzeichnis und ruft den Quellcode auf

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

Löse es und mache

./configure --help

Daraufhin werden Ihnen alle benötigten Pakete angezeigt, wie Expat, OpenSL usw. Sie müssen alle Pakete herunterladen, erstellen und installieren. /home/youruserWenn Sie fertig sind, werden Sie /home/youruser/binmehrere benötigte Verzeichnisse haben.

Bitte lesen Sie die INSTALL-Datei im unverpackten Verzeichnis und veröffentlichen Sie Ihren Fortschritt.

Der Git, mit dem Sie verlinkt haben, ist ein bisschen anders (ich habe die `github`-Quelle, die gar nicht` configure` hat). Ich habe `./configure --with-zlib = / home / mein_name / zlib /` ausgeführt (dieses Verzeichnis existiert). Es schien sich nicht zu beklagen. Wenn ich jedoch "make" starte, bekomme ich den gleichen Fehler wie oben, was anscheinend ein Mangel an "zlib" ist. Ich stecke dort fest. Explosion Pills vor 12 Jahren 0
Jetzt müssen Sie den Quellcode in zlib herunterladen, das Archiv auspacken, `./configure --prefix = / home / youruser && make && make install` ausführen und git erneut versuchen. Wie gesagt, wenn Sie `./configure --help` mit git machen, erhalten Sie eine Liste von Paketen, die es haben soll, sie sind mit` [default = yes] `oder so ähnlich gekennzeichnet. thisfeller vor 12 Jahren 0
Hinweis: Diese ganze Arbeit wird für Sie mit https://github.com/VonC/compileEverything erledigt VonC vor 12 Jahren 0