Cómo instalar la última versión de git en CentOS 7.x / 6.x


Usé lo habitual:

yum install git

No instaló la última versión de git en mi CentOS 6. ¿Cómo puedo actualizar a la última versión de git para CentOS 6? La solución puede ser aplicable a versiones más recientes de CentOS como CentOS 7.

Author: A-B-B, 2014-02-17

11 answers

Puedes usar el repositorio CentOS de WANdisco para instalar Git 2.x: para CentOS 6 , para CentOS 7

  1. Instalar el paquete 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. Instale la última versión de Git 2.x:

    yum install git
    
  3. Verifique la versión de Git que se instaló:

    git --version
    

A partir del 18 de agosto. 2017, la última versión disponible de WANdisco es 2.14.1.

 197
Author: Joseph Leedy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-03-21 13:12:35

Echando un vistazo al blog aquí Encontré la solución en uno de los comentarios. Asegúrate de tener el repositorio rpmforge agregado a tu CentOS yum y simplemente ejecuta el comando que fluye:

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

Si ya tienes git instalado entonces usa:

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

Pregunta(s) conexa (s):

  1. Enfrentar problemas al actualizar git a la última versión en CentOS 6.4

Nota de actualización:

Gracias a Anthony Hatzopoulos, para git v1.8x usted tendrá que use git18 como en:

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

Nota actualización 2:

También gracias a @Axlrod por la siguiente sugerencia y @Hiphip por la retroalimentación:

Cambie el archivo rpmforge.repo para que rpmforge-extras esté habilitado, yum update git. De lo contrario, se quejó de problemas de dependencia.

Nota actualización 3:

Instalar una versión específica de git say 2.x Encontré esta guía agradable y fácil de seguir sobre cómo descargar el código fuente de GIT y compilarlo usted mismo (e instalarlo). Si la respuesta aceptada no le da la versión que desea, intente las siguientes instrucciones:

Http://tecadmin.net/install-git-2-0-on-centos-rhel-fedora /

(Y pegado/reformateado desde la fuente anterior en caso de que se elimine más tarde)

Paso 1: Instale los paquetes requeridos

En primer lugar tenemos que asegurarnos de que hemos instalado los paquetes necesarios en su sistema. Utilice el siguiente comando para instalar los paquetes necesarios antes de compilar Git fuente.

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

Paso 2: Desinstalar viejo Git RPM

Ahora elimine cualquier instalación previa de Git a través de RPM file o Yum package manager. Si su versión anterior también se compila a través de código fuente, omita este paso.

# yum remove git

Paso 3: Descarga y Compila el código fuente de Git

Descargue el código fuente de git del kernel git o simplemente use el siguiente comando para descargar 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

Después de descargar y extraer el código fuente de Git, utilice siguiente comando para compilar el código fuente.

# 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

PISTA 1: Método actualizado para agregar el directorio compilado de git bin a bashrc. Debido a que echo "export PATH=$PATH:/usr/local/git/bin" >> /etc/bashrc usa "" en lugar de ", expandiría el valor de la sesión actual para PATH PATH en lugar de mantenerlo como una variable, y podría afectar negativamente a todo el sistema. Como mínimo, debería usar "en lugar de "" y realmente debería ser un script separado en /etc/profile.d/

PISTA 2 (@DJB): /usr/local/git/bin antes de $PATH, ya que la versión anterior de git ya estaba en PATH PATH: export PATH=/usr/local/git/bin:$PATH

Paso 4. Compruebe la versión de Git

Al completar los pasos anteriores, ha instalado Git correctamente en su sistema. Vamos a usar el siguiente comando para comprobar la versión de git

# git --version

git version 2.0.4

También quería añadir que la guía "Primeros pasos" en el sitio web de GIT también incluye instrucciones sobre cómo descargarlo y compilarlo usted mismo:

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

 124
Author: AmirHd,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 10:31:31

Encontré esta guía agradable y fácil de seguir sobre cómo descargar el código fuente de GIT y compilarlo usted mismo (e instalarlo). Si la respuesta aceptada no te da la versión que deseas, prueba las siguientes instrucciones:

Http://tecadmin.net/install-git-2-0-on-centos-rhel-fedora /

(Y pegado/reformateado desde la fuente anterior en caso de que se elimine más tarde)

Paso 1: Instale los paquetes requeridos

En primer lugar tenemos que asegurarnos de que tenemos se instalaron los paquetes necesarios en su sistema. Utilice el siguiente comando para instalar los paquetes necesarios antes de compilar el código fuente de Git.

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

Paso 2: Desinstalar viejo Git RPM

Ahora elimine cualquier instalación previa de Git a través de RPM file o Yum package manager. Si su versión anterior también se compila a través de código fuente, omita este paso.

# yum remove git

Paso 3: Descarga y Compila el código fuente de Git

Descargue el código fuente de git desde el kernel git o simplemente use lo siguiente comando para descargar 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

Después de descargar y extraer el código fuente de Git, Utilice el siguiente comando para compilar el código fuente.

# 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

Paso 4. Compruebe la versión de Git

Al completar los pasos anteriores, ha instalado Git correctamente en su sistema. Utilice el siguiente comando para comprobar la versión de git

# git --version

git version 2.5.3

También quería añadir que la guía "Primeros pasos" en el sitio web de GIT también incluye instrucciones sobre cómo descargarlo y compilarlo usted mismo:

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

 73
Author: Pytry,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-11-03 16:46:02

Rackspace mantiene el repositorio ius, que contiene un git razonablemente actualizado, pero el git de stock debe eliminarse primero.

CentOS 7 instrucciones:

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

CentOS 6 instrucciones:

$ sudo yum install https://centos6.iuscommunity.org/ius-release.rpm
$ sudo yum erase git
$ sudo yum install epel-release
$ sudo yum install git2u
 60
Author: Mark Visser,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-01-25 15:16:33

Mi preferencia personal es construir paquetes rpm para CentOS al instalar software no estándar y reemplazar componentes distribuidos. Para esto te recomiendo que utilices Mock para crear un entorno de construcción limpio.

El procedimiento es:

  1. Obtenga los RPMS de origen o un archivo de ESPECIFICACIONES adecuado y un tarball de origen prístino. En este caso se pueden encontrar paquetes RPM de origen para git2X para CentOS-6 en: http://dl.iuscommunity.org/pub/ius/archive/CentOS/6/SRPMS/. Paquetes para otras versiones de CentOS también son disponible.

  2. Instale el software de soporte necesario:

    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. Agregue una cuenta de usuario de compilación rpm (no compile como root o como usuario real - los problemas de seguridad volverán para morderle).

    sudo adduser builder --home-dir /home/builder \
    --create-home --user-group --groups mock \
    --shell /bin/bash --comment "rpm package builder"
    
  4. A continuación necesitamos un entorno de compilación.

    su -l builder
    rpmdev-setuptree
    

    Esto produce la siguiente estructura de directorios:

    ~
    └── rpmbuild
        ├── BUILD
        ├── RPMS
        ├── SOURCES
        ├── SPECS
        └── SRPMS
    
  5. Estamos usando un SRPMS preparado para que los tarballs de las FUENTES se puedan ignorar para esto case y podemos ir directamente a 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. Configurar mock (como root)

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

    Deshabilita los repositorios beta. Habilite los repositorios base y update.

  7. Inicializar el árbol de compilación (/var/lib / mock es el valor predeterminado)

    mock --init
    
  8. Si construyéramos a partir de FUENTES, entonces aquí es donde emplearíamos el archivo SPEC y usaríamos mock --buildsrpm . . .. Pero en este caso vamos directamente al paso de compilación binaria:

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

    Esto resolverá la construcción dependencias y descargarlas (unos 95 paquetes) en la raíz de compilación limpia. Luego extraerá las fuentes y construirá el binario desde el SRPM proporcionado y lo dejará en /var/lib/mock/epel-6-x86_64/result; o en cualquier ubicación raíz de compilación personalizada y arquitectura que haya proporcionado. Tomará mucho tiempo. Hay mucho en este paquete; particularmente documentación.

  9. Si todo va bien, entonces debería terminar con un conjunto de paquetes RPM adecuados para la instalación en lugar de la versión de distribución. Esto es lo que terminé con:

    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. Instalar usando yum o rpm.

    Necesitará git2u-2.5.3-1.ius.el6.x86_64.rpm como mínimo y los paquetes de soporte adicionales que requiera (perl-Git2u-2.5.3-1.ius.el6.noarch.rpm) o que desee.

    Esta compilación tiene una dependencia cíclica: git2u-2.5.3-1.ius.el6.x86_64.rpm depende de perl-Git2u-2.5.3-1.ius.el6.noarch.rpm y perl-Git2u-2.5.3-1.ius.el6.noarch.rpm depende de git2u-2.5.3-1.ius.el6.x86_64.rpm. Por lo tanto, una instalación recta con rpm fallará.

    Hay dos maneras de lidiar con esto:{[27]]}

    • Instale ambos al mismo tiempo a través de yum:

      yum localinstall \
        git2u-2.5.3-1.ius.el6.x86_64.rpm \
        perl-Git2u-2.5.3-1.ius.el6.noarch.rpm`
      
    • Configurar un repositorio local de yum.

      Estoy incluyendo mi archivo LocalFile.repo a continuación, ya que contiene instrucciones sobre cómo hacer esto y proporciona el archivo repo necesario al mismo tiempo.

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

También se le puede solicitar que preinstale manualmente paquetes de dependencias adicionales como perl-TermReadKey disponibles en los repositorios habituales.

 9
Author: James B. Byrne,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-12-07 17:37:05

Para compilar e instalar modern Git en 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
Author: Joe Goggins,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-12-16 18:17:19

Añadiendo una respuesta indirecta aquí. Estaba luchando para instalar git en una instancia de Amazon RHEL 6.0, y lo que terminó salvándome fue ... conda, como en Ana conda Python.

Instalé conda en la línea de comandos desde los archivos (código modelado después de esto):

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"

Y luego corrió

conda install git

Y se instaló una versión relativamente reciente de git. Hoy es 12/26/2016 y la versión 2.9.3.

 3
Author: Ben Ogorek,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-12-26 22:39:04

Este es mi método para instalar git en 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
Author: Dylan Pearson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-08-08 19:13:01

Compilar la última versión de git en Centos 6/7

Preparando el sistema para construir rpms

  1. Instalar epel:

    Para EL6, utilizar:

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

    Para EL7, utilizar:

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

    sudo yum install fedpkg
    
  3. Agrégate al grupo mock (es posible que necesites volver a iniciar sesión en el servidor después de este cambio):

    sudo usermod -a -G mock $USER
    

Descargar git

  1. Descargar git fuentes:

    fedpkg clone -a git && cd git
    fedpkg sources
    
  2. Verificar fuentes:

    sha512sum -c sources
    

Construir rpm

  1. Crear srmp. Utilizar el6 para RHEL6, el7 para RHEL7.

    fedpkg --dist el7 srpm
    
  2. Compilar el paquete en mock:

    mock -r epel-7-x86_64 git-2.16.0-1.el7.src.rpm
    
  3. Instale la última versión de git rpm desde /var/lib/mock/epel-7-x86_64/result/. Tenga en cuenta que es posible que deba desinstalar la versión existente del git de su sistema primero.

Esta instrucción se basa en el mensaje de la lista de correo de Todd Zullinger .

 1
Author: sashk,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-02-09 14:38:01

Esto puede ser irrelevante. Es para las personas que no quieren construir el último git en el host, mientras tanto, todavía pueden obtener el último git.

Creo que a la mayoría de la gente no le gusta construir el último git en CentOS porque las dependencias contaminarán el host y tienes que ejecutar muchos comandos. Por lo tanto, tengo una idea que es construir git dentro del contenedor de Docker y luego instalar el ejecutable a través del montaje de volumen de docker. Después de eso, puede eliminar la imagen y contenedor.

Sí, la desventaja es que tiene que instalar docker. Pero las dependencias menos se introducen en el host y no tiene que instalar otro repositorio de yum.

Aquí está mi repositorio. https://github.com/wood1986/docker-library/tree/master/git

 0
Author: WooD,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-06-03 23:08:59

Puede ser muy confuso, y peligroso, reemplazar los repositorios base de upstream con repositorios add-on sin pruebas y pensamientos considerables. RPMForge, en particular, está efectivamente moribundo y no está recibiendo actualizaciones.

Personalmente publico herramientas para compilar git 2.4, empaquetadas como un paquete alternativo llamado "git24", en https://github.com/nkadel/git24-srpm / . Siéntase libre de acceder y bifurcar aquellos si desea que los paquetes se distingan del sistema estándar paquetes, al igual que los paquetes "samba" y "samba4" se diferencian.

 -3
Author: Nico Kadel-Garcia,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-03-07 20:14:08