Comment construire git avec des liens statiques?

J’ai téléchargé git source depuis https://github.com/git/git sous forme de fichier zip.

Je l’ai extrait dans / home / Desktop / denis / git (en utilisant Ubuntu).

Maintenant, le tutoriel dit ici que je devrais courir

./configure --prefix=/home/denis/git-static CFLAGS="${CFLAGS} -static" 

du dossier mentionné ci-dessus comme une étape pour construire git.

Mais la source de git ne semble pas avoir de fichier de configuration dans son dossier racine que je peux exécuter (seulement configure.ac, ce qui, je pense, n’est pas ce que je recherche).

Qu’est-ce que j’oublie ici? Comment construire git manuellement?

Je le fais parce que j’essaie de faire fonctionner git sur un serveur d’hébergement partagé où je ne peux pas installer git.

Lisez le fichier INSTALL dans le dossier racine du fichier décompressé, il semble y avoir des instructions utiles, ce que je pense:

Sinon, vous pouvez utiliser le script ./configure généré par autoconf pour configurer les chemins d’installation (via config.mak.autogen), afin de pouvoir écrire à la place

  $ make configure ;# as yourself $ ./configure --prefix=/usr ;# as yourself $ make all doc ;# as yourself # make install install-doc install-html;# as root 

ou simplement:

  $ make prefix=/usr all doc info ;# as yourself # make prefix=/usr install install-doc install-html install-info ;# as root 

Ouais … c’est compilé, mais pas de manière statique. Pour atteindre votre objective, vous devez le comstackr en utilisant la commande:

créer le préfixe = / home / denis / git-static CFLAGS = “$ {CFLAGS} -static-libgcc

Seulement avec -static il ne va pas lier correctement les fichiers binarys .

Vous aurez besoin de certaines bibliothèques pendant le processus de compilation: algorithme de compression Gzip et PKZIP, SSL, parsing XML et CURL en plus des autres bibliothèques courantes. Ceux que je viens de mentionner sont respectueusement dans les paquets libll1g-dev libssl-dev libexpat1-dev libcurl4-nss-dev.

Donc, lancez essentiellement les commandes:

  • aptitude install gcc make zlib1g-dev libssl-dev libexpat1-dev libcurl4-nss-dev
  • créer le préfixe = / home / denis / git-static CFLAGS = “$ {CFLAGS} -static-libgcc”

J’espère que les choses vont bien pour vous là-bas. Bonne chance dans votre compilation.

Les autres réponses n’ont pas fonctionné pour moi. Peut-être qu’ils le feront pour les autres. Ce qui a fonctionné pour moi était:

  1. Obtenir le code source
  2. Créer un répertoire cible
  3. Entrez le répertoire source
  4. Configurer
  5. Construire
  6. Installer

Utilisez les commandes suivantes:

 git clone [email protected]:git/git.git mkdir git-static cd git ./configure prefix=/path/to/git-static/ CFLAGS="${CFLAGS} -static" make make install 

Cela vous laissera quelques dossiers dans le répertoire git-static , mais l’exécutable est lié de manière statique. Il est également sensiblement plus gros que d’habitude (peut-être 1,5 Mo de plus).