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

Usé lo de siempre:

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 aplicarse a las versiones más nuevas de CentOS como CentOS 7.

Puede usar el repository CentOS de WANDisco para instalar Git 2.x: para CentOS 6 , para CentOS 7

  1. Instalar el paquete repo de WANDisco:

     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 de 2017, la última versión disponible de WANDisco es 2.14.1.

Echando un vistazo al blog aquí encontré la solución en uno de los comentarios. Asegúrate de tener el repository 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 instalado git, utiliza:

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

Preguntas relacionadas):

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

Actualización de la nota:

Gracias a Anthony Hatzopoulos, para git v1.8x necesitarás usar git18 como en:

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

Nota actualización 2:

También gracias a @Axlrod por la sugerencia a continuación y @Hiphip por los comentarios:

Cambie el archivo rpmforge.repo para tener rpmforge-extras en enabled, yum update git . De lo contrario, se quejaba de los problemas de dependencia.

Nota actualización 3:

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

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

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

Paso 1: Instala los paquetes requeridos

En primer lugar, debemos asegurarnos de haber instalado los paquetes necesarios en su sistema. Use el siguiente comando para instalar los paquetes necesarios antes de comstackr la fuente de Git.

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

Paso 2: desinstala el viejo Git RPM

Ahora elimine cualquier instalación anterior de Git a través del archivo RPM o el administrador de paquetes Yum. Si su versión anterior también se comstack a través de la fuente, omita este paso.

 # yum remove git 

Paso 3: descarga y comstack la fuente de Git

Descargue el código fuente de git desde 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, use el siguiente comando para comstackr 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 

CONSEJO 1: Método actualizado para agregar el directorio comstackdo de git bin a bashrc. Debido a que echo "export PATH=$PATH:/usr/local/git/bin" >> /etc/bashrc usó “” en lugar de “”, expandiría el valor de la sesión actual para $ 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/

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

Paso 4. Verificar la versión de Git

Una vez completados los pasos anteriores, ha instalado satisfactoriamente Git en su sistema. Deje de usar el siguiente comando para verificar la versión de git

 # git --version git version 2.0.4 

También quería agregar que la guía “Comenzando” en el sitio web de GIT también incluye instrucciones sobre cómo descargarla y comstackrla usted mismo:

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

Encontré esta guía agradable y fácil de seguir sobre cómo descargar la fuente de GIT y comstackrla tú mismo (e instalarla). Si la respuesta aceptada no le da la versión que desea, intente con las siguientes instrucciones:

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

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

Paso 1: Instala los paquetes requeridos

En primer lugar, debemos asegurarnos de haber instalado los paquetes necesarios en su sistema. Use el siguiente comando para instalar los paquetes necesarios antes de comstackr la fuente de Git.

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

Paso 2: desinstala el viejo Git RPM

Ahora elimine cualquier instalación anterior de Git a través del archivo RPM o el administrador de paquetes Yum. Si su versión anterior también se comstack a través de la fuente, omita este paso.

 # yum remove git 

Paso 3: descarga y comstack la fuente de Git

Descargue el código fuente de git de kernel git o simplemente use el 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, use el siguiente comando para comstackr 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. Verificar la versión de Git

Al completar los pasos anteriores, ha instalado satisfactoriamente Git en su sistema. Use el siguiente comando para verificar la versión de Git

 # git --version git version 2.5.3 

También quería agregar que la guía “Comenzando” en el sitio web de GIT también incluye instrucciones sobre cómo descargarla y comstackrla usted mismo:

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

Rackspace mantiene el repository de ius , que contiene un git razonablemente actualizado, pero primero se debe eliminar el git de stock.

Instrucciones de 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 

Instrucciones de 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 

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

El procedimiento es:

  1. Obtenga el RPMS de origen o un archivo SPEC adecuado y un tarball de fuente prístina. En este caso, uno puede encontrar paquetes RPM fuente para git2X para CentOS-6 en: http://dl.iuscommunity.org/pub/ius/archive/CentOS/6/SRPMS/ . Los paquetes para otras versiones de CentOS también están disponibles.

  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 comstackción de rpm ( no la cree como root o como usuario real; los problemas de seguridad volverán a afectarlo ).

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

     su -l builder rpmdev-setuptree 

    Esto produce la siguiente estructura de directorio:

     ~ └── rpmbuild ├── BUILD ├── RPMS ├── SOURCES ├── SPECS └── SRPMS 
  5. Estamos utilizando un SRPMS preparado para que los archivos tar de SOURCES se puedan ignorar para este caso y podamos 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 simulacro (como raíz)

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

    Deshabilita los repos beta Habilite la base y update repos.

  7. Inicialice el árbol de comstackción (/ var / lib / mock es el predeterminado)

     mock --init 
  8. Si estuviéramos construyendo desde SOURCES, aquí es donde emplearíamos el archivo SPEC y mock --buildsrpm . . . mock --buildsrpm . . . . Pero en este caso vamos directamente al paso de comstackción binario:

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

    Esto resolverá las dependencias de comstackción y las descargará (aproximadamente 95 o más paquetes) en la raíz de comstackción limpia. A continuación, extrae las fonts y crea el binario a partir del SRPM proporcionado y lo deja en /var/lib/mock/epel-6-x86_64/result ; o en cualquier architecture y ubicación de raíz de comstackción personalizada que haya proporcionado. Tomará un largo tiempo. Hay mucho en este paquete; particularmente documentación.

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

     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 usted deseo.

    Esta comstackció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 . Una instalación directa con rpm fallará.

    Hay dos formas de manejarlo:

    • 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` 
    • Configura un yum repo local.

      Estoy incluyendo mi archivo LocalFile.repo continuación, ya que contiene instrucciones sobre cómo hacerlo 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 es posible que deba preinstalar manualmente paquetes de dependencia adicionales, como perl-TermReadKey disponibles en los repositorys habituales.

Para construir e instalar Git moderno 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 

Agregando una respuesta indirecta aquí. Estaba luchando por instalar git en una instancia de RHEL 6.0 en Amazon, y lo que terminó por salvarme fue … conda, como en Ana conda Python.

Instalé conda en la línea de comando de 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 26/12/2016 y la versión es 2.9.3.

Aquí está 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 

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

Preparación del sistema para construir rpms

  1. Instalar epel:

    Para EL6, use:

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

    Para EL7, use:

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

     sudo yum install fedpkg 
  3. Sumérgete en la simulación de grupo (es posible que tengas que volver a iniciar sesión en el servidor después de este cambio):

     sudo usermod -a -G mock $USER 

Descargar git

  1. Descargue las fonts de git :

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

     sha512sum -c sources 

Build rpm

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

     fedpkg --dist el7 srpm 
  2. Crear paquete en simulacro:

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

Esta instrucción se basa en la publicación de la lista de correo por Todd Zullinger .

Esto puede ser irrelevante. Es para las personas que no quieren construir el último git en el host mientras puedan 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 tendrás que ejecutar muchos comandos. Por lo tanto, tengo una idea que es construir git dentro del contenedor Docker y luego instalar el ejecutable a través del assembly del volumen docker. Después de eso, puede eliminar la imagen y el contenedor.

Sí, la desventaja es que tienes que instalar docker. Pero las menos dependencias se presentan al host y no es necesario instalar otro yum repo.

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

Puede ser muy confuso y peligroso reemplazar los repositorys básicos de la cadena ascendente con repositorys adicionales sin pruebas ni consideraciones considerables. RPMforge, en particular, está efectivamente moribundo y no está recibiendo actualizaciones.

Personalmente, publico herramientas para comstackr git 2.4, envuelto como un paquete alternativo denominado “git24”, en https://github.com/nkadel/git24-srpm/ . Siéntase libre de acceder a estos paquetes y bifurcarlos si desea paquetes que se distingan de los paquetes de sistema estándar, del mismo modo que se diferencian los paquetes “samba” y “samba4”.