Selon http://cygwin.com/packages/git/ le dernier package Cygwin disponible est 1.7.9-1.
Je voudrais mettre à jour git au moins 1.8.0.
Puis-je faire ceci?
À installer git 1.8.0
vous devez compiler le code source.
Vous devez cloner le référentiel git (git clone https://github.com/git/git.git
), entrez dans le répertoire git, changez la version actuelle en 1.8.0 ou une autre version de votre choix (git checkout v.1.8.0
) et tapez les commandes suivantes:
make configure
./configure --prefix=/usr/local
make
make install
Il installera git sous /usr/local
répertoire. Pour plus d'informations sur l'installation de git, comme la documentation, vous pouvez consulter le fichier INSTALL
localisé à la racine du référentiel git.
cygwinports a de nombreuses nouvelles versions de divers outils
Au moment où j'écris ceci, il y a 1.8.3.4
Nouvelles instructions d'installation simplifiées:
- Utilisez les derniers programmes d'installation Cygwin (au moins la version 2.829): setup-x86.exe pour 32 bits ou setup-x86_64.exe pour 64 bits. (Notez que de nombreux packages n'ont pas encore été portés sur x86_64.)
Lancer la configuration - *. Exe avec le drapeau -K, par exemple:
cygstart - /path/to/setup-x86.exe -K http://cygwinports.org/ports.gpg
Sur la page Choisir le type d'installation, sélectionnez "Installer à partir d'Internet".
- Sur la page Choisir le (s) site (s) de téléchargement, sélectionnez un miroir de distribution, puis entrez ftp://ftp.cygwinports.org/pub/cygwinports dans le champ URL utilisateur et appuyez sur Ajouter (en vous assurant que les deux sont Souligné).
- Alternativement, vous pouvez utiliser un miroir de sourceware, mais si vous le faites, vous devez en utiliser un hébergé sur un serveur différent de votre miroir de distribution sélectionné.
- Procédez à la sélection et à l'installation du package, en veillant à installer toutes les dépendances indiquées.
J'ai installé avec succès git 1.8.4.474 en suivant ces instructions ; J'utilise Windows 7 64 bits, cygwin version 1.7.22 (0.268/5/3)
Exécutez l'utilitaire de configuration Cygwin et assurez-vous que les packages suivants sont installés:
gcc autoconf curl libcurl-devel, required for http/https support (NOTE: this is an obsolete package, you will need to uncheck "Hide obsolete packages" when selecting packages to install) make libiconv python Perl gettext
Vous pourriez avoir besoin de libiconv-devel et cygwin32-liviconv (voir le commentaire de Marek)
Clonez les sources Git avec git clone https://github.com/git/git.git . Quelques notes à ce sujet en ce qui concerne la configuration de Git:
Assurez-vous que
core.autocrlf=false
, Sinon vous vous retrouverez avec des fins de ligne de style DOS qui provoqueront la rupture de la construction.J'avais également une valeur de propriété
http.sslcainfo
Vissée; désélectionnez-le ou pointez-le sur/usr/ssl/certs/ca-bundle.crt
.Depuis votre dépôt git nouvellement cloné, exécutez les commandes suivantes:
make configure ./configure make make install
Vos instructions n'ont pas vraiment fonctionné pour moi ...
J'ai suivi ces instructions (pour m'assurer que tous les packages corrects sont installés)
http://randomartifacts.blogspot.com/2013/04/compiling-git-on-cygwin.html
Modification du Makefile
$ git diff Makefile
diff --git a/Makefile b/Makefile
index 3588ca1..90f337c 100644
--- a/Makefile
+++ b/Makefile
@@ -407,7 +407,7 @@ RPMBUILD = rpmbuild
TCL_PATH = tclsh
TCLTK_PATH = wish
XGETTEXT = xgettext
-MSGFMT = msgfmt
+MSGFMT = msgfmt.py
PTHREAD_LIBS = -lpthread
PTHREAD_CFLAGS =
GCOV = gcov
puis
make configure NO_MSGFMT_EXTENDED_OPTIONS=1
./configure
make NO_MSGFMT_EXTENDED_OPTIONS=1
make install NO_MSGFMT_EXTENDED_OPTIONS=1
Je ne sais pas si le paramètre est nécessaire pour toutes les commandes make, mais cela a fonctionné pour moi
J'ai eu un problème en faisant "make install". Le message d'erreur est:
install -d -m 755 '/ usr/local/bin'
git: 'installation' n'est pas une commande git. Voir 'git --help'.
./ install: ligne 4: Normalement: commande introuvable
./ install: ligne 5: volonté: commande introuvable
./ install: ligne 6: à: commande introuvable
./ install: ligne 8: $: commande introuvable
./ install: ligne 11: erreur de syntaxe près du jeton inattendu.'
(ou préfixe =/usr/local, bien sûr). Comme toute suite de programmes "
./install: line 11:
Cela est dû à l'insensibilité à la casse du système d'exploitation Windows si vous avez "./" dans votre CHEMIN. Cygwin utilise le fichier INSTALL dans l'arborescence source de git au lieu de/usr/bin/install. Nous devons renommer certains fichiers "INSTALLER" dans l'arborescence source en un autre nom de fichier. Ceci est mentionné par http://zengrong.net/post/1817.htm
J'ai eu un problème en faisant cela qui m'a pris une heure pour déboguer, alors je poste une réponse au cas où quelqu'un d'autre viendrait ici à la recherche.
En fait, c'est la même cause que celle de Yorkwar, mais des erreurs différentes.
Tout va bien jusqu'à make install
les sorties:
$ make install
GEN Perl/PM.stamp
SUBDIR gitweb
SUBDIR ../
make[2]: 'GIT-VERSION-FILE' is up to date.
GEN git-instaweb
BUILTIN all
SUBDIR git-gui
SUBDIR gitk-git
SUBDIR Perl
SUBDIR templates
install -d -m 755 '/usr/local/bin'
make: execvp: install: Permission denied
Makefile:2342: recipe for target 'install' failed
make: *** [install] Error 127
Après beaucoup de nettoyage avec UAC, setuid, icacls, propriété, etc., j'ai trouvé via strace
que le problème réel est que lors de l'exécution de install
: puisque j'ai ./
dans mon PATH
, et Windows ne respecte pas la casse, il essaie d'exécuter INSTALL
, qui est un fichier texte qui n'a pas le bit x
défini. La "permission refusée" fait donc référence au fait que x
n'est pas défini sur ce fichier.
@Yorkwar a corrigé cela en renommant tous les fichiers INSTALL
, mais une autre option consiste à modifier Makefile
et à remplacer
INSTALL = install
avec
INSTALL = /usr/bin/install
J'utilise cygwin 32 bits dans Windows 7 64 bits (installé avant la sortie de cygwin64 et je n'ai pas pris la peine de mettre à niveau). Généré et installé avec succès git version 2.0.0.rc4.dirty
qui était le résultat de git clone https://github.com/git/git.git
.