linux - for - Cómo instalar la última versión de git en CentOS 7.x/6.x
install git server centos 7 (11)
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.
Construye la última versión de git
en Centos 6/7
Preparación del sistema para construir rpms
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
Instalar
fedpkg
:sudo yum install fedpkg
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
Descargue las fuentes de
git
:fedpkg clone -a git && cd git fedpkg sources
Verificar fuentes:
sha512sum -c sources
Build rpm
Crear srmp. Usa
el6
para RHEL6,el7
para RHEL7.fedpkg --dist el7 srpm
Crear paquete en simulacro:
mock -r epel-7-x86_64 git-2.16.0-1.el7.src.rpm
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 .
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 archives (código modelado después de 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"
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
Echando un vistazo al blog here 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 instalado git, utiliza:
yum --disablerepo=base,updates --enablerepo=rpmforge-extras update git
Preguntas relacionadas):
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 compilarla 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 compilar 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 compila a través de la fuente, omita este paso.
# yum remove git
Paso 3: descarga y compila 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 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
CONSEJO 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
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 compilarla 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 compilarla 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 compilar 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 compila a través de la fuente, omita este paso.
# yum remove git
Paso 3: descarga y compila 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 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. 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 compilarla usted mismo:
http://git-scm.com/book/en/v2/Getting-Started-Installing-Git
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 montaje 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 repositorio. https://github.com/wood1986/docker-library/tree/master/git
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:
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.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
Agregue una cuenta de usuario de compilació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"
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
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
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 labase
yupdate
repos.Inicialice el árbol de compilación (/ var / lib / mock es el predeterminado)
mock --init
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 compilación binario:mock --no-clean --rebuild ~/rpmbuild/SRPMS/git2u-2.5.3-1.ius.centos6.src.rpm
Esto resolverá las dependencias de compilación y las descargará (aproximadamente 95 o más paquetes) en la raíz de compilación limpia. A continuación, extrae las fuentes y crea el binario a partir del SRPM proporcionado y lo deja en
/var/lib/mock/epel-6-x86_64/result
; o en cualquier arquitectura y ubicación de raíz de compilación personalizada que haya proporcionado. Tomará un largo tiempo. Hay mucho en este paquete; particularmente documentación.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
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 compilación tiene una dependencia cíclica:
git2u-2.5.3-1.ius.el6.x86_64.rpm
depende deperl-Git2u-2.5.3-1.ius.el6.noarch.rpm
yperl-Git2u-2.5.3-1.ius.el6.noarch.rpm
depende degit2u-2.5.3-1.ius.el6.x86_64.rpm
. Una instalación directa conrpm
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 repositorios 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
Puede ser muy confuso y peligroso reemplazar los repositorios básicos de la cadena ascendente con repositorios adicionales sin pruebas ni consideraciones considerables. RPMforge, en particular, está efectivamente moribundo y no está recibiendo actualizaciones.
Personalmente, publico herramientas para compilar 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".
Puede usar el repositorio CentOS de WANDisco para instalar Git 2.x: para CentOS 6 , para CentOS 7
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
Instale la última versión de Git 2.x:
yum install git
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.
Rackspace mantiene el repositorio 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