web-dev-qa-db-fra.com

Comment installer la dernière version de git sur CentOS 7.x / 6.x

J'ai utilisé l'habitude:

yum install git

Il n’a pas installé la dernière version de git sur mon CentOS 6. Comment puis-je mettre à jour vers la dernière version de git pour CentOS 6? La solution peut être appliquée aux versions les plus récentes de CentOS telles que CentOS 7.

215
AmirHd

Vous pouvez utiliser le référentiel CentOS de WANDisco pour installer Git 2.x: pour CentOS 6 , pour CentOS 7

  1. Installez le package WANDisco repo:

    yum install http://opensource.wandisco.com/centos/6/git/x86_64/wandisco-git-release-6-1.noarch.rpm
    - or -
    yum install http://opensource.wandisco.com/centos/7/git/x86_64/wandisco-git-release-7-1.noarch.rpm
    - or -
    yum install http://opensource.wandisco.com/centos/7/git/x86_64/wandisco-git-release-7-2.noarch.rpm
    
  2. Installez la dernière version de Git 2.x:

    yum install git
    
  3. Vérifiez la version de Git installée:

    git --version
    

À compter du 16 juillet 2019, la dernière version disponible de WANDisco est la suivante: 2.22.0 .

286
Joseph Leedy

En regardant le blog ici J'ai trouvé la solution dans l'un des commentaires. Assurez-vous que le référentiel rpmforge a été ajouté à votre serveur CentOS et exécutez simplement la commande suivante:

yum --disablerepo=base,updates --enablerepo=rpmforge-extras install git

Si vous avez déjà installé git, utilisez:

yum --disablerepo=base,updates --enablerepo=rpmforge-extras update git

Questions connexes):

  1. Problèmes lors de la mise à niveau de git vers la dernière version sur CentOS 6.4

Note mise à jour:

Grâce à Anthony Hatzopoulos, pour git v1.8x, vous devrez utiliser git18 comme suit:

yum --disablerepo=base,updates --enablerepo=rpmforge-extras install git18 

Note mise à jour 2:

Merci également à @Axlrod pour le conseil ci-dessous et à @Hiphip pour les commentaires:

Modifiez le fichier rpmforge.repo pour que rpmforge-extras soit activé, yum update git. Sinon, il s'est plaint de problèmes de dépendance.

Note mise à jour 3:

En installant une version spécifique de git say 2.x, j'ai trouvé ce guide agréable et facile à suivre sur la façon de télécharger le source GIT et de le compiler vous-même (et de l'installer). Si la réponse acceptée ne vous donne pas la version souhaitée, essayez les instructions suivantes:

http://tecadmin.net/install-git-2-0-on-centos-rhel-Fedora/

(Et collé/reformaté à partir de la source ci-dessus s'il est supprimé ultérieurement)

Étape 1: Installez les packages requis

Premièrement, nous devons nous assurer que nous avons installé les packages requis sur votre système. Utilisez la commande suivante pour installer les packages requis avant de compiler la source Git.

# yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel
# yum install  gcc Perl-ExtUtils-MakeMaker

Étape 2: Désinstallez l'ancien RPM Git.

Supprimez maintenant toute installation antérieure de Git via le fichier RPM ou le gestionnaire de paquets Yum. Si votre ancienne version est également compilée via le source, ignorez cette étape.

# yum remove git

Étape 3: Téléchargez et compilez Git Source

Téléchargez le code source de git depuis le noyau git ou utilisez simplement la commande suivante pour télécharger Git 2.0.4.

# cd /usr/src
# wget https://www.kernel.org/pub/software/scm/git/git-2.0.4.tar.gz
# tar xzf git-2.0.4.tar.gz

Après avoir téléchargé et extrait le code source de Git, utilisez la commande suivante pour compiler le code source.

# cd git-2.0.4
# make prefix=/usr/local/git all
# make prefix=/usr/local/git install
#
# echo 'export PATH=$PATH:/usr/local/git/bin' >> /etc/bashrc
#  or
# echo 'export PATH=$PATH:/usr/local/git/bin' > /etc/profile.d/git.sh
#
# source /etc/bashrc

CONSEIL 1: Méthode mise à jour pour ajouter le répertoire compilé git bin à bashrc. Étant donné que echo "export PATH=$PATH:/usr/local/git/bin" >> /etc/bashrc a utilisé "" au lieu de '', la valeur de la session en cours est augmentée pour $ PATH au lieu de la conserver en tant que variable et peut avoir un impact négatif sur l'ensemble du système. Au minimum, il devrait utiliser '' au lieu de "" et devrait vraiment être un script séparé dans /etc/profile.d/

CONSEIL 2 (@DJB): /usr/local/git/bin avant $PATH, car l'ancienne version de git était déjà sur $ PATH: export PATH=/usr/local/git/bin:$PATH

Étape 4. Vérifier la version de Git

Une fois les étapes ci-dessus terminées, vous avez correctement installé Git dans votre système. Laisse utiliser la commande suivante pour vérifier la version de git

# git --version

git version 2.0.4

Je voulais aussi ajouter que le guide "Getting Started" sur le site Web de GIT comprend également des instructions sur la façon de le télécharger et de le compiler vous-même:

http://git-scm.com/book/en/v2/Getting-Started-Installing-Git

130
AmirHd

J'ai trouvé ce guide agréable et facile à suivre sur la façon de télécharger le source GIT et de le compiler vous-même (et de l'installer). Si la réponse acceptée ne vous donne pas la version souhaitée, essayez les instructions suivantes:

http://tecadmin.net/install-git-2-0-on-centos-rhel-Fedora/

(Et collé/reformaté à partir de la source ci-dessus s'il est supprimé ultérieurement)

Étape 1: Installez les packages requis

Premièrement, nous devons nous assurer que nous avons installé les packages requis sur votre système. Utilisez la commande suivante pour installer les packages requis avant de compiler la source Git.

# yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel
# yum install  gcc Perl-ExtUtils-MakeMaker

Étape 2: Désinstallez l'ancien RPM Git.

Supprimez maintenant toute installation antérieure de Git via le fichier RPM ou le gestionnaire de paquets Yum. Si votre ancienne version est également compilée via le source, ignorez cette étape.

# yum remove git

Étape 3: Téléchargez et compilez Git Source

Téléchargez le code source de git depuis le noyau git ou utilisez simplement la commande suivante pour télécharger Git 2.5.3.

# cd /usr/src
# wget https://www.kernel.org/pub/software/scm/git/git-2.5.3.tar.gz
# tar xzf git-2.5.3.tar.gz

Après avoir téléchargé et extrait le code source de Git, utilisez la commande suivante pour compiler le code source.

# cd git-2.5.3
# make prefix=/usr/local/git all
# make prefix=/usr/local/git install
# echo 'pathmunge /usr/local/git/bin/' > /etc/profile.d/git.sh 
# chmod +x /etc/profile.d/git.sh
# source /etc/bashrc

Étape 4. Vérifier la version de Git

Une fois les étapes ci-dessus terminées, vous avez correctement installé Git dans votre système. Utilisez la commande suivante pour vérifier la version de git

# git --version

git version 2.5.3

Je voulais aussi ajouter que le guide "Getting Started" sur le site Web de GIT comprend également des instructions sur la façon de le télécharger et de le compiler vous-même:

http://git-scm.com/book/en/v2/Getting-Started-Installing-Git

82
Pytry

Rackspace gère le ius repository , qui contient un git raisonnablement à jour, mais le git de stock doit d'abord être supprimé.

Instructions CentOS 7:

$ Sudo yum install https://centos7.iuscommunity.org/ius-release.rpm
$ Sudo yum erase git
$ Sudo yum install epel-release 
$ Sudo yum install git2u

Instructions CentOS 6:

$ Sudo yum install https://centos6.iuscommunity.org/ius-release.rpm
$ Sudo yum erase git
$ Sudo yum install epel-release
$ Sudo yum install git2u
81
Mark Visser

Ma préférence personnelle est de créer des packages rpm pour CentOS lors de l’installation de logiciels non standard et du remplacement de composants distribués. Pour cela, je vous recommande d'utiliser Mock pour créer un environnement de construction propre.

La procédure est la suivante:

  1. Obtenez le fichier RPMS source ou un fichier SPEC approprié et une archive source vierge. Dans ce cas, vous pouvez trouver les paquetages RPM source pour git2X pour CentOS-6 à l'adresse: http://dl.iuscommunity.org/pub/ius/archive/CentOS/6/SRPMS/. Des packages pour d'autres versions de CentOS sont également disponibles.

  2. Installez le logiciel de support nécessaire:

    yum install epel-release  # you need this for mock
    yum install rpm-build
    yum install redhat-rpm-config
    yum install rpmdevtools
    yum install mock
    
  3. Ajoutez un compte utilisateur de construction rpm ( ne créez pas en tant que root ou en tant qu'utilisateur réel - problèmes de sécurité sera revenez vous mordre ).

    Sudo adduser builder --home-dir /home/builder \
    --create-home --user-group --groups mock \
    --Shell /bin/bash --comment "rpm package builder"
    
  4. Ensuite, nous avons besoin d'un environnement de construction.

    su -l builder
    rpmdev-setuptree
    

    Cela produit la structure de répertoire suivante:

    ~
    └── rpmbuild
        ├── BUILD
        ├── RPMS
        ├── SOURCES
        ├── SPECS
        └── SRPMS
    
  5. Nous utilisons un SRPMS préparé afin que les archives de SOURCES puissent être ignorées pour ce cas et que nous puissions passer directement à SRPMS.

    wget http://dl.iuscommunity.org/pub/ius/archive/CentOS/6/SRPMS/git2u-2.5.3-1.ius.centos6.src.rpm \
    -O ~/rpmbuild/SRPMS/git2u-2.5.3-1.ius.centos6.src.rpm
    
  6. Configurer la maquette (en tant que root)

    cd /etc/mock
    rm default.cfg
    ln -s epel-6-x86_64.cfg default.cfg
    vim default.cfg
    

    Désactivez le beta repo. Activer le base et update repo.

  7. Initialiser l'arbre de construction (/ var/lib/mock est la valeur par défaut)

    mock --init
    
  8. Si nous construisions à partir de SOURCES, c’est là que nous emploierions le fichier SPEC et utiliserions mock --buildsrpm . . .. Mais dans ce cas, nous allons directement à l’étape de construction binaire:

    mock --no-clean --rebuild ~/rpmbuild/SRPMS/git2u-2.5.3-1.ius.centos6.src.rpm
    

    Cela résoudra les dépendances de construction et les téléchargera (environ 95 paquetages) dans la racine de la nouvelle construction. Il extraira ensuite les sources et construira le binaire à partir du SRPM fourni et le laissera dans /var/lib/mock/epel-6-x86_64/result; ou dans n'importe quel emplacement de racine personnalisé et architecture que vous avez fournis. Il faudra une longue période. Il y a beaucoup de choses dans ce paquet; en particulier la documentation.

  9. Si tout se passe bien, vous devriez vous retrouver avec une série de paquetages RPM pouvant être installés à la place de la version distro. C'est ce que j'ai fini avec:

    ll /var/lib/mock/epel-6-x86_64/result
    total 34996
    -rw-rw-r--. 1 byrnejb mock   448455 Oct 30 10:09 build.log
    -rw-rw-r--. 1 byrnejb mock    52464 Oct 30 10:09 emacs-git2u-2.5.3-1.ius.el6.noarch.rpm
    -rw-rw-r--. 1 byrnejb mock    47228 Oct 30 10:09 emacs-git2u-el-2.5.3-1.ius.el6.noarch.rpm
    -rw-rw-r--. 1 byrnejb mock  8474478 Oct 30 09:57 git2u-2.5.3-1.ius.el6.src.rpm
    -rw-rw-r--. 1 byrnejb mock  8877584 Oct 30 10:09 git2u-2.5.3-1.ius.el6.x86_64.rpm
    -rw-rw-r--. 1 byrnejb mock    27284 Oct 30 10:09 git2u-all-2.5.3-1.ius.el6.noarch.rpm
    -rw-rw-r--. 1 byrnejb mock    27800 Oct 30 10:09 git2u-bzr-2.5.3-1.ius.el6.noarch.rpm
    -rw-rw-r--. 1 byrnejb mock   112564 Oct 30 10:09 git2u-cvs-2.5.3-1.ius.el6.noarch.rpm
    -rw-rw-r--. 1 byrnejb mock   436176 Oct 30 10:09 git2u-daemon-2.5.3-1.ius.el6.x86_64.rpm
    -rw-rw-r--. 1 byrnejb mock 15858600 Oct 30 10:09 git2u-debuginfo-2.5.3-1.ius.el6.x86_64.rpm
    -rw-rw-r--. 1 byrnejb mock    60556 Oct 30 10:09 git2u-email-2.5.3-1.ius.el6.noarch.rpm
    -rw-rw-r--. 1 byrnejb mock   274888 Oct 30 10:09 git2u-gui-2.5.3-1.ius.el6.noarch.rpm
    -rw-rw-r--. 1 byrnejb mock    79176 Oct 30 10:09 git2u-p4-2.5.3-1.ius.el6.noarch.rpm
    -rw-rw-r--. 1 byrnejb mock   483132 Oct 30 10:09 git2u-svn-2.5.3-1.ius.el6.x86_64.rpm
    -rw-rw-r--. 1 byrnejb mock   173732 Oct 30 10:09 gitk2u-2.5.3-1.ius.el6.noarch.rpm
    -rw-rw-r--. 1 byrnejb mock   115692 Oct 30 10:09 gitweb2u-2.5.3-1.ius.el6.noarch.rpm
    -rw-rw-r--. 1 byrnejb mock    57196 Oct 30 10:09 Perl-Git2u-2.5.3-1.ius.el6.noarch.rpm
    -rw-rw-r--. 1 byrnejb mock    89900 Oct 30 10:09 Perl-Git2u-SVN-2.5.3-1.ius.el6.noarch.rpm
    -rw-rw-r--. 1 byrnejb mock   101026 Oct 30 10:09 root.log
    -rw-rw-r--. 1 byrnejb mock      980 Oct 30 10:09 state.log
    
  10. Installez en utilisant yum ou rpm.

    Vous aurez besoin de git2u-2.5.3-1.ius.el6.x86_64.rpm au minimum et des packages de support supplémentaires nécessaires (Perl-Git2u-2.5.3-1.ius.el6.noarch.rpm) ou de votre choix.

    Cette construction a une dépendance cyclique: git2u-2.5.3-1.ius.el6.x86_64.rpm dépend de Perl-Git2u-2.5.3-1.ius.el6.noarch.rpm et Perl-Git2u-2.5.3-1.ius.el6.noarch.rpm dépend de git2u-2.5.3-1.ius.el6.x86_64.rpm. Une installation directe avec rpm échouera donc.

    Il y a deux façons de gérer cela:

    • Installez les deux en même temps via yum:

      yum localinstall \
        git2u-2.5.3-1.ius.el6.x86_64.rpm \
        Perl-Git2u-2.5.3-1.ius.el6.noarch.rpm`
      
    • Configurez un repo local miam.

      J'inclus mon fichier LocalFile.repo ci-dessous car il contient des instructions sur la procédure à suivre et fournit le fichier de mise en pension nécessaire en même temps.

cat /etc/yum.repos.d/LocalFile.repo
# LocalFile.repo
#
#  This repo is used with a local filesystem repo.
#
# To use this repo place the rpm package in /root/RPMS/yum.repo/Packages.
# Then run: createrepo --database --update /root/RPMS/yum.repo.
#
# To use:
#  yum --enablerepo=localfile [command]
#  
# or to use only ONLY this repo, do this:
#
#  yum --disablerepo=\* --enablerepo=localfile [command]

[localfile]
baseurl=file:///root/RPMS/yum.repo
name=CentOS-$releasever - Local Filesystem repo

# Before persistently enabling this repo see the priority note below.
enabled=0
gpgcheck=0

# When this repo is enabled all packages in repos with priority>5
# will not be updated even when they have a more recent version.
# Be careful with this.
priority=5

Vous devrez peut-être également préinstaller manuellement des packages de dépendance supplémentaires, tels que Perl-TermReadKey, disponibles dans les référentiels habituels.

9
James B. Byrne

Pour construire et installer Git moderne sur CentOS 6:

yum install -y curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc Perl-ExtUtils-MakeMaker
export GIT_VERSION=2.6.4
mkdir /root/git
cd /root/git
wget "https://www.kernel.org/pub/software/scm/git/git-${GIT_VERSION}.tar.gz"
tar xvzf "git-${GIT_VERSION}.tar.gz"
cd git-${GIT_VERSION}
make prefix=/usr/local all
make prefix=/usr/local install
yum remove -y git
git --version # should be GIT_VERSION
5
Joe Goggins

comme dit git :

RHEL et ses dérivés livrent généralement les anciennes versions de git. Vous pouvez télécharger une archive et une compilation à partir des sources, ou utiliser un référentiel tiers, tel que le projet de communauté IUS, pour obtenir une version plus récente de git.

il y a un bon tutoriel ici . dans mon cas (serveur Centos7) après l’installation, il a fallu se déconnecter puis se reconnecter.

4
Alireza Saremi

Construisez la dernière version de git sur Centos 6/7

Préparation du système à la création de RPM

  1. Installez epel:

    Pour EL6, utilisez:

    Sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm  
    

    Pour EL7, utilisez:

    Sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
    
  2. Installez fedpkg:

    Sudo yum install fedpkg
    
  3. Ajoutez-vous à la simulation de groupe (vous devrez peut-être vous reconnecter au serveur après cette modification):

    Sudo usermod -a -G mock $USER
    

Télécharger git

  1. Téléchargez git sources:

    fedpkg clone -a git && cd git
    fedpkg sources
    
  2. Vérifier les sources:

    sha512sum -c sources
    

Construire rpm

  1. Créez srmp. Utilisez el6 pour RHEL6, el7 pour RHEL7.

    fedpkg --dist el7 srpm
    
  2. Construire le paquet dans la maquette:

    mock -r epel-7-x86_64 git-2.16.0-1.el7.src.rpm
    
  3. Installez la dernière version de git rpm à partir de /var/lib/mock/epel-7-x86_64/result/. Notez que vous devrez d’abord désinstaller la version existante de git de votre système.

Cette instruction est basée sur la liste de diffusion postée par Todd Zullinger .

3
sashk

Ajouter un rond point répondre ici. J'avais du mal à installer git sur une instance Amazon RHEL 6.0, et ce qui m'a finalement sauvé, c'est ... conda, comme dans Ana conda Python.

J'ai installé conda sur la ligne de commande depuis le archives (code modélisé d'après this ):

wget http://repo.continuum.io/miniconda/Miniconda2-4.2.12-Linux-x86_64.sh -O ~/miniconda.sh
bash ~/miniconda.sh -b -p $HOME/miniconda
export PATH="$HOME/miniconda/bin:$PATH"

et ensuite couru

conda install git

et une version relativement récente, git, a été installée. Nous sommes le 26/12/2016 et la version 2.9.3.

3
Ben Ogorek

Voici ma méthode pour installer Git sur Centos 6.

Sudo yum groupinstall "Development Tools"
Sudo yum install zlib-devel Perl-ExtUtils-MakeMaker asciidoc xmlto openssl-devel curl-devel
Sudo yum install wget
cd ~
wget -O git.Zip https://github.com/git/git/archive/v2.7.2.Zip
unzip git.Zip
cd git-2.7.2
make configure
./configure --prefix=/usr/local
make all doc
Sudo make install install-doc install-html
1
Dylan Pearson

Cela peut être hors de propos. C'est pour les gens qui ne veulent pas construire le dernier git sur l'hôte en attendant qu'ils puissent toujours avoir le dernier git.

Je pense que la plupart des gens n'aiment pas construire le dernier git sur CentOS car les dépendances vont contaminer l'hôte et vous devez exécuter beaucoup de commandes. Par conséquent, j'ai une idée qui construit git à l'intérieur du conteneur Docker, puis installe l'exécutable via le montage du volume du docker. Après cela, vous pouvez supprimer l'image et le conteneur.

Oui, l'inconvénient est que vous devez installer le menu fixe. Mais les moindres dépendances sont introduites dans l'hôte et vous n'avez pas besoin d'installer d'autres référentiels yum.

Voici mon référentiel. https://github.com/wood1986/docker-library/tree/master/git

1
WOW