Como instalar a versão mais recente do git no CentOS 7.x / 6.x

Eu usei o usual:

yum install git 

Ele não instalou a versão mais recente do git no meu CentOS 6. Como posso atualizar para a versão mais recente do git para o CentOS 6? A solução pode ser aplicável a versões mais recentes do CentOS, como o CentOS 7.

Você pode usar o repository CentOS do WANDisco para instalar o Git 2.x: para o CentOS 6 , para o CentOS 7

  1. Instale o pacote repo 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 a versão mais recente do Git 2.x:

     yum install git 
  3. Verifique a versão do Git que foi instalada:

     git --version 

A partir de 18 de agosto de 2017, a última versão disponível do WANDisco é 2.14.1 .

Dando uma olhada no blog aqui , encontrei a solução em um dos comentários. Certifique-se de ter o repository rpmforge adicionado ao seu Centum yum e apenas execute o comando de stream:

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

Se você já tem o git instalado então use:

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

Perguntas relacionadas):

  1. Enfrentando problemas ao atualizar o git para a versão mais recente no CentOS 6.4

Nota de atualização:

Graças a Anthony Hatzopoulos, por git v1.8x você precisará usar o git18 como em:

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

Observe a atualização 2:

Também agradeço a @Axlrod pela sugestão abaixo e @Hiphip pelo feedback:

Altere o arquivo rpmforge.repo para que o rpmforge-extras habilitado, yum update git . Caso contrário, reclamou de problemas de dependência.

Observe a atualização 3:

Instalando uma versão específica do git, digamos 2.x Eu encontrei este guia agradável e fácil de seguir sobre como baixar o código-fonte do GIT e compilá-lo você mesmo (e instalá-lo). Se a resposta aceita não lhe der a versão desejada, tente as seguintes instruções:

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

(E colado / reformatado da fonte acima, caso seja removido posteriormente)

Etapa 1: instalar pacotes necessários

Em primeiro lugar, precisamos ter certeza de que instalamos os pacotes necessários em seu sistema. Use o seguinte comando para instalar os pacotes necessários antes de compilar a fonte do Git.

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

Etapa 2: desinstalar o Git RPM antigo

Agora remova qualquer instalação anterior do Git através do arquivo RPM ou do gerenciador de pacotes Yum. Se sua versão mais antiga também for compilada por meio da origem, pule esta etapa.

 # yum remove git 

Etapa 3: faça o download e compile a fonte do Git

Faça o download do código-fonte git do kernel git ou simplesmente use o seguinte comando para baixar o 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 

Depois de baixar e extrair o código-fonte do Git, use o seguinte comando para compilar o código-fonte.

 # 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 

DICA 1: Método atualizado de adicionar o diretório git bin compilado ao bashrc. Como echo "export PATH=$PATH:/usr/local/git/bin" >> /etc/bashrc usado “” em vez de ”, ele expandiria o valor da session atual para $ PATH em vez de mantê-lo como uma variável, e pode afetar adversamente todo o sistema. No mínimo, ele deve usar ” em vez de “” e deve ser realmente um script separado em /etc/profile.d/

DICA 2 (@DJB): /usr/local/git/bin antes de $PATH , já que a versão mais antiga do git já estava em $ PATH: export PATH=/usr/local/git/bin:$PATH

Etapa 4. Verificar a versão do Git

Uma conclusão das etapas acima, você instalou com sucesso o Git em seu sistema. Vamos usar o seguinte comando para verificar a versão do git

 # git --version git version 2.0.4 

Eu também queria acrescentar que o guia “Getting Started” no site do GIT também inclui instruções sobre como baixar e compilar você mesmo:

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

Eu encontrei este guia agradável e fácil de seguir sobre como baixar o código fonte do GIT e compilá-lo você mesmo (e instalá-lo). Se a resposta aceita não lhe der a versão desejada, tente as seguintes instruções:

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

(E colado / reformatado da fonte acima, caso seja removido posteriormente)

Etapa 1: instalar pacotes necessários

Em primeiro lugar, precisamos ter certeza de que instalamos os pacotes necessários em seu sistema. Use o seguinte comando para instalar os pacotes necessários antes de compilar a fonte do Git.

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

Etapa 2: desinstalar o Git RPM antigo

Agora remova qualquer instalação anterior do Git através do arquivo RPM ou do gerenciador de pacotes Yum. Se sua versão mais antiga também for compilada por meio da origem, pule esta etapa.

 # yum remove git 

Etapa 3: faça o download e compile a fonte do Git

Faça o download do código-fonte git do kernel git ou simplesmente use o seguinte comando para baixar o 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 

Depois de baixar e extrair o código-fonte do Git, use o seguinte comando para compilar o código-fonte.

 # 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 

Etapa 4. Verificar a versão do Git

Ao concluir as etapas acima, você instalou com êxito o Git no seu sistema. Use o seguinte comando para verificar a versão do git

 # git --version git version 2.5.3 

Eu também queria acrescentar que o guia “Getting Started” no site do GIT também inclui instruções sobre como baixar e compilar você mesmo:

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

O Rackspace mantém o repository ius , que contém um git razoavelmente atualizado, mas o git do estoque deve primeiro ser removido.

Instruções do 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 

Instruções do 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 

Minha preferência pessoal é criar pacotes rpm para o CentOS ao instalar software não padrão e replace componentes distribuídos. Para isso, recomendo que você use o Mock para criar um ambiente de criação limpo.

O procedimento é:

  1. Obtenha o RPMS de origem ou um arquivo SPEC adequado e um tarball de origem original. Nesse caso, é possível encontrar pacotes RPM de origem para o git2X para o CentOS-6 em: http://dl.iuscommunity.org/pub/ius/archive/CentOS/6/SRPMS/ . Pacotes para outras versões do CentOS também estão disponíveis.

  2. Instale o software de suporte necessário:

     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. Adicione uma conta de usuário de compilation do rpm ( não crie como root nem como um usuário real – os problemas de segurança voltarão a incomodá-lo ).

     sudo adduser builder --home-dir /home/builder \ --create-home --user-group --groups mock \ --shell /bin/bash --comment "rpm package builder" 
  4. Em seguida, precisamos de um ambiente de criação.

     su -l builder rpmdev-setuptree 

    Isso produz a seguinte estrutura de diretórios:

     ~ └── rpmbuild ├── BUILD ├── RPMS ├── SOURCES ├── SPECS └── SRPMS 
  5. Estamos usando um SRPMS preparado para que os tarballs do SOURCES possam ser ignorados para este caso e possamos ir diretamente para o 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 simulação (como root)

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

    Desative os repos beta . Ative a base e update repos.

  7. Inicialize a tree de construção (/ var / lib / mock é o padrão)

     mock --init 
  8. Se nós estivéssemos construindo da SOURCES, então é onde empregaríamos o arquivo SPEC e mock --buildsrpm . . . mock --buildsrpm . . . . Mas, neste caso, vamos diretamente para a etapa de construção binária:

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

    Isso resolverá as dependencies de compilation e fará o download delas (aproximadamente 95 pacotes) na raiz da compilation limpa. Ele irá então extrair as fonts e construir o binário a partir do SRPM fornecido e deixá-lo em /var/lib/mock/epel-6-x86_64/result ; ou em qualquer local e arquitetura raiz de compilation personalizada que você forneceu. Vai demorar muito tempo. Há muito para este pacote; particularmente documentação.

  9. Se tudo correr bem, você deve acabar com um pacote de pacotes RPM adequado para instalação no lugar da versão da distribuição. Foi com isso que acabei:

     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. Instale usando yum ou rpm.

    Você exigirá o git2u-2.5.3-1.ius.el6.x86_64.rpm e os pacotes de suporte adicionais que ele requer ( perl-Git2u-2.5.3-1.ius.el6.noarch.rpm ) ou você desejo.

    Esta build tem uma dependência cíclica: git2u-2.5.3-1.ius.el6.x86_64.rpm depende de perl-Git2u-2.5.3-1.ius.el6.noarch.rpm e perl-Git2u-2.5.3-1.ius.el6.noarch.rpm depende do git2u-2.5.3-1.ius.el6.x86_64.rpm . Uma instalação direta com rpm falhará.

    Existem duas maneiras de lidar com isso:

    • Instale os dois ao mesmo tempo via yum:

       yum localinstall \ git2u-2.5.3-1.ius.el6.x86_64.rpm \ perl-Git2u-2.5.3-1.ius.el6.noarch.rpm` 
    • Configurar um repository yum local.

      Estou incluindo meu arquivo LocalFile.repo abaixo, pois contém instruções sobre como fazer isso e fornece o arquivo repo necessário ao mesmo tempo.

 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 

Você também pode ser obrigado a pré-instalar manualmente pacotes adicionais de dependência, como perl-TermReadKey disponíveis nos repositorys usuais.

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

Adicionando uma resposta de rotunda aqui. Eu estava lutando para instalar o git em uma instância do RHEL 6.0 da Amazon, e o que acabou me salvando foi … conda, como na Ana conda Python.

Eu instalei o conda na linha de comando dos arquivos (código modelado depois disso ):

 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" 

e depois correu

 conda install git 

e um git de versão relativamente recente foi instalado. Hoje é 26/12/2016 e a versão é 2.9.3.

Aqui está o meu método para instalar o git no 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 

Construa a última versão do git no Centos 6/7

Preparando o sistema para construir rpms

  1. Instale epel:

    Para EL6, use:

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

    Para o EL7, use:

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

     sudo yum install fedpkg 
  3. Adicione-se ao grupo simulado (talvez seja necessário fazer login novamente no servidor após essa alteração):

     sudo usermod -a -G mock $USER 

Baixar git

  1. Faça o download das fonts do git :

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

     sha512sum -c sources 

Construa rpm

  1. Crie o srmp. Use el6 para RHEL6, el7 para RHEL7.

     fedpkg --dist el7 srpm 
  2. Criar pacote em simulação:

     mock -r epel-7-x86_64 git-2.16.0-1.el7.src.rpm 
  3. Instale a versão mais recente do git rpm em /var/lib/mock/epel-7-x86_64/result/ . Note, você pode precisar desinstalar a versão existente do git do seu sistema primeiro.

Esta instrução é baseada no post da lista de discussão por Todd Zullinger .

Isso pode ser irrelevante. É para pessoas que não querem construir o último git no host enquanto elas ainda podem obter o último git.

Eu acho que a maioria das pessoas não gosta de construir o último git no CentOS porque as dependencies contaminarão o host e você terá que executar muitos comandos. Portanto, tenho uma ideia que está construindo o git dentro do contêiner do Docker e, em seguida, instalo o executável através da assembly do volume do docker. Depois disso, você pode excluir a imagem e o container.

Sim, a desvantagem é que você precisa instalar o docker. Mas as menores dependencies são introduzidas no host e você não precisa instalar outro repository do yum.

Aqui está meu repository. https://github.com/wood1986/docker-library/tree/master/git

Pode ser muito confuso e perigoso replace os repositorys base upstream com repositorys adicionais sem testes e reflexões consideráveis. RPMforge, em particular, é efetivamente moribundo e não está recebendo atualizações.

Eu pessoalmente publico ferramentas para construir o git 2.4, embrulhado como um pacote alternativo chamado “git24”, em https://github.com/nkadel/git24-srpm/ . Sinta-se à vontade para acessar e bifurcar esses pacotes se você quiser distinguir-se dos pacotes padrão do sistema, assim como os pacotes “samba” e “samba4” são diferenciados.