如何在CentOS 6.x / 7.x上安装最新版本的git

我用平时:

yum install git 

但是它并没有在我的CentOS 6.4上安装最新版本的git。 那么,我怎样才能更新到CentOS 6.4的最新版本呢?

注意:

该解决scheme可适用于其他新发行的CentOS版本,例如CentOS 7.x。

看看这里的博客,我在其中一个评论中find了解决scheme。 确保你已经将rpmforge资源库添加到了你的CentOS yum中,并运行下面的命令:

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

如果你已经安装了git,那么使用:

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

相关问题:

  1. 在CentOS 6.4上将git升级到最新版本时遇到问题

注意更新:

感谢Anthony Hatzopoulos,对于git v1.8x你需要使用git18:

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

注意更新2:

还要感谢@Axlrod提供的以下提示和@Hiphip反馈:

更改rpmforge.repo文件以使rpmforge-extras启用, yum update git 。 否则,它抱怨依赖问题。

注意更新3:

安装特定版本的git说2.x我发现这个如何下载GIT源代码并自行编译(并安装它)的这个好的和易于遵循的指南。 如果接受的答案不能提供您想要的版本,请尝试以下说明:

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

(如果以后被删除,则从上面粘贴/重新格式化)

第1步:安装必需的软件包

首先,我们需要确保我们已经在您的系统上安装了所需的软件包。 在编译Git源代码之前,使用以下命令安装所需的软件包。

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

第2步:卸载旧的Git RPM

现在通过RPM文件或Yum包pipe理器删除任何先前安装的Git。 如果您的旧版本也是通过源代码编译的,则跳过这一步。

 # yum remove git 

第3步:下载并编译Git源代码

从内核git下载git源代码,或者使用下面的命令下载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 

下载并解压Git源代码后,使用下面的命令编译源代码。

 # 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 

提示1:更新了编译的git bin目录到bashrc的方法。 因为echo "export PATH=$PATH:/usr/local/git/bin" >> /etc/bashrc使用“”而不是“”,它会扩展当前会话的$ PATH值而不是保留为variables,并可能对整个系统产生不利影响。 至less应该使用“”而不是“”,并且应该是/etc/profile.d/一个单独的脚本

$PATH之前提示2(@DJB): /usr/local/git/bin ,因为旧版本的git已经在$ PATH中: export PATH=/usr/local/git/bin:$PATH

第4步。检查Git版本

完成上述步骤之后,您已经成功在系统中安装Git。 让我们使用下面的命令来检查git版本

 # git --version git version 2.0.4 

我还想补充一点,GIT网站上的“入门”指南还包括如何自行下载和编译的说明:

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

您可以使用WANDisco的CentOS存储库来安装Git 2.x.

  1. 安装WANDisco软件包:
 yum install http://opensource.wandisco.com/centos/6/git/x86_64/wandisco-git-release-6-1.noarch.rpm 
  1. 安装最新版本的Git 2.x:
 yum install git 
  1. validation已安装的Git的版本:
 git --version 

截至2017-02-08,WANDisco的最新版本是2.11.0。

我发现这个好的和易于遵循的如何下载GIT源代码并自己编译(并安装它)的指南。 如果接受的答案不能提供您想要的版本,请尝试以下说明:

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

(如果以后被删除,则从上面粘贴/重新格式化)

第1步:安装必需的软件包

首先,我们需要确保我们已经在您的系统上安装了所需的软件包。 在编译Git源代码之前,使用以下命令安装所需的软件包。

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

第2步:卸载旧的Git RPM

现在通过RPM文件或Yum包pipe理器删除任何先前安装的Git。 如果您的旧版本也是通过源代码编译的,则跳过这一步。

 # yum remove git 

第3步:下载并编译Git源代码

从内核git下载git源代码,或者使用下面的命令下载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 

下载并解压Git源代码后,使用下面的命令编译源代码。

 # 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 

第4步。检查Git版本

在完成上述步骤后,您已经成功地将Git安装到您的系统中。 使用以下命令来检查git版本

 # git --version git version 2.5.3 

我还想补充一点,GIT网站上的“入门”指南还包括如何自行下载和编译的说明:

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

Rackspace维护ius存储库 ,其中包含一个合理的最新的git(编辑:删除股票git第一):

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

编辑:CentOS 7.2说明(谢谢ksopyła !):

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

我个人的偏好是在安装非标准软件和replace分布式组件时为CentOS构buildrpm包。 为此,我build议您使用Mock来创build一个干净的构build环境。

程序是:

  1. 获取源RPMS或合适的SPEC文件和原始源代码包。 在这种情况下,可以在http://dl.iuscommunity.org/pub/ius/archive/CentOS/6/SRPMS/find用于CentOS-6的git2X的源代码RPM包。 其他CentOS版本的软件包也可用。

  2. 安装必要的支持软件:

     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. 添加一个rpm版本的用户帐户( 不要以root身份或真正的用户身份build立 – 安全问题回来咬你 )。

     sudo adduser builder --home-dir /home/builder \ --create-home --user-group --groups mock \ --shell /bin/bash --comment "rpm package builder" 
  4. 接下来我们需要一个构build环境。

     su -l builder rpmdev-setuptree 

    这会产生以下目录结构:

     ~ └── rpmbuild ├── BUILD ├── RPMS ├── SOURCES ├── SPECS └── SRPMS 
  5. 我们正在使用一个准备好的SRPMS,所以在这种情况下SOURCES tarballs可以被忽略,我们可以直接进入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. configuration模拟(以root身份)

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

    禁用beta回购。 启用baseupdate回购。

  7. 初始化构build树(/ var / lib / mock是默认的)

     mock --init 
  8. 如果我们从SOURCES构build,那么我们将使用SPEC文件并使用mock --buildsrpm . . . mock --buildsrpm . . . 。 但在这种情况下,我们直接进入二进制构build步骤:

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

    这将解决构build依赖关系并将它们(大约95个左右的包)下载到干净的构build根目录中。 然后它将提取源代码,并从提供的SRPM构build二进制文件,并将其保留在/var/lib/mock/epel-6-x86_64/result ; 或者是您提供的任何自定义构build根位置和架构。 这将需要很长时间。 这个包有很多, 特别是文件。

  9. 如果一切顺利的话,你最终应该得到一套适合安装在发行版本中的RPM软件包。 这是我结束了:

     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. 使用yum或rpm安装。

    您至less需要git2u-2.5.3-1.ius.el6.x86_64.rpm ,并且需要其他支持包( perl-Git2u-2.5.3-1.ius.el6.noarch.rpm )或者您欲望。

    这个版本有一个循环依赖: git2u-2.5.3-1.ius.el6.x86_64.rpm取决于perl-Git2u-2.5.3-1.ius.el6.noarch.rpmperl-Git2u-2.5.3-1.ius.el6.noarch.rpm取决于git2u-2.5.3-1.ius.el6.x86_64.rpm 。 用rpm直接安装就会失败。

    有两种处理方法:

    • 通过yum同时安装两个:

       yum localinstall \ git2u-2.5.3-1.ius.el6.x86_64.rpm \ perl-Git2u-2.5.3-1.ius.el6.noarch.rpm` 
    • 设置一个当地的百胜回购。

      我在下面包含我的LocalFile.repo文件,因为它包含有关如何执行此操作的说明,并同时提供必要的repo文件。

 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 

您也可能需要手动预先安装额外的依赖包,例如通常存储库中的perl-TermReadKey

在CentOS 6上构build和安装现代Git:

 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 

这是我在centos 6上安装git的方法。

 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 

在这里添加一个迂回的答案。 我很努力地在RHEL 6.0 Amazon实例上安装git,结果救了我的是… conda,就像在Ana conda Python中一样。

我从档案的命令行上安装了conda(代码如下 ):

 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" 

然后跑

 conda install git 

并安装了一个相对较新的版本git。 今天是2016年12月26日,版本是2.9.3。

这可能是无关紧要的。 这是因为人们不想在主机上build立最新的git,同时他们仍然可以得到最新的git。

我想大多数人不喜欢在CentOS上构build最新的git,因为依赖关系会污染主机,而且你必须运行很多命令。 因此,我有一个想法是在Docker容器中构buildgit,然后通过docker卷装载来安装可执行文件。 之后,您可以删除图像和容器。

是的,缺点是你必须安装docker。 但最less的依赖被引入到主机,你不必安装其他yum回购。

这是我的存储库。 https://github.com/wood1986/docker-library/tree/master/git

如果没有相当多的testing和思考,将上游基础知识库replace为附加存储库可能会非常令人困惑和危险。 特别是,RPMforge实际上正在濒临灭绝,并没有得到更新。

我个人发布了构buildgit 2.4的工具,包装为一个名为“git24”的包,在https://github.com/nkadel/git24-srpm/ 。 如果您想要区别于标准系统软件包的软件包,则可以随意访问和分离这些软件包,就像“samba”和“samba4”软件包是有区别的一样。