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

Ami*_*rHd 220 linux git installation centos yum

我常用的是:

yum install git
Run Code Online (Sandbox Code Playgroud)

它没有在我的CentOS 6上安装最新版本的git.如何更新到CentOS 6的最新版本的git?该解决方案适用于较新版本的CentOS,如CentOS 7.

Jos*_*edy 304

您可以使用WANDisco的CentOS存储库为CentOS 7安装GIT 2.x:for CentOS 6

  1. 安装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
    
    Run Code Online (Sandbox Code Playgroud)
  2. 安装最新版本的Git 2.x:

    yum install git
    
    Run Code Online (Sandbox Code Playgroud)
  3. 验证已安装的Git版本:

    git --version
    
    Run Code Online (Sandbox Code Playgroud)

截至2017年8月18日,WANDisco的最新版本为2.14.1.

  • 必须应用此答案.已经应用了`--disablerepo = base的答案,更新`对我来说不起作用. (9认同)
  • 这是对我有用的.比接受的答案简单得多. (6认同)

Ami*_*rHd 134

看看这里的博客,我在其中一条评论中找到了解决方案.确保将rpmforge存储库添加到CentOS yum并运行flow命令:

yum --disablerepo=base,updates --enablerepo=rpmforge-extras install git
Run Code Online (Sandbox Code Playgroud)

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

yum --disablerepo=base,updates --enablerepo=rpmforge-extras update git
Run Code Online (Sandbox Code Playgroud)

相关问题:

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

注意更新:

感谢Anthony Hatzopoulos,因为git v1.8x你需要使用git18,如:

yum --disablerepo=base,updates --enablerepo=rpmforge-extras install git18 
Run Code Online (Sandbox Code Playgroud)

注意更新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
Run Code Online (Sandbox Code Playgroud)

第2步:卸载旧的Git RPM

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

# yum remove git
Run Code Online (Sandbox Code Playgroud)

第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
Run Code Online (Sandbox Code Playgroud)

下载并解压缩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
Run Code Online (Sandbox Code Playgroud)

提示1:更新了将已编译的git bin目录添加到bashrc的方法.因为echo "export PATH=$PATH:/usr/local/git/bin" >> /etc/bashrc使用""代替'',它会扩展$ PATH的当前会话值,而不是将其保留为变量,并可能对整个系统产生负面影响.至少,它应该使用''而不是"",并且应该真的是一个单独的脚本/etc/profile.d/

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

步骤4.检查Git版本

完成上述步骤后,您已成功在系统中安装Git.让我们使用以下命令检查git版本

# git --version

git version 2.0.4
Run Code Online (Sandbox Code Playgroud)

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

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

  • https://wiki.centos.org/AdditionalResources/Repositories/RPMForge RPMForge/RepoForge是一个死的项目.它没有得到维护.不使用. (24认同)
  • 获取rpmforge-extras的存储库数据时出错,找不到存储库 - 在cent6.6上的第一个cmd (4认同)
  • 这只得到我git v1.7x.对于git v1.8x,你需要使用`git18`,如`yum --disablerepo = base,updates --enablerepo = rpmforge-extras install git18` (3认同)
  • 对我不起作用,我不得不更改rpmforge.repo文件以启用rpmforge-extras,然后执行yum update git.否则它抱怨依赖问题.(因为它需要从基地打包) (2认同)
  • 运行`yum --disablerepo = base,更新--enablerepo = rpmforge-extras list | grep git`仅在Centos 6.6上显示Git 1.7.12.也许他们已经删除了"git18"? (2认同)
  • @EdRandall,问题是-Keith改变了他的个人资料名称.为避免将来出现混淆,我在答案中在Update 4中添加了他的答案. (2认同)
  • 嗯,这个解决方案对我不起作用.`获取rpmforge-extras的存储库数据时出错,找不到存储库.CentOS 6.7.这种方式从另一个帖子总是有效.`yum install http://opensource.wandisco.com/centos/6/git/x86_64/wandisco-git-release-6-1.noarch.rpm&& yum install git` (2认同)

Pyt*_*try 82

我发现了这个很好且易于理解的指南,介绍了如何下载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
Run Code Online (Sandbox Code Playgroud)

第2步:卸载旧的Git RPM

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

# yum remove git
Run Code Online (Sandbox Code Playgroud)

第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
Run Code Online (Sandbox Code Playgroud)

下载并解压缩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
Run Code Online (Sandbox Code Playgroud)

步骤4.检查Git版本

完成上述步骤后,您已成功在系统中安装Git.使用以下命令检查git版本

# git --version

git version 2.5.3
Run Code Online (Sandbox Code Playgroud)

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

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

  • 在centOS 6.6它工作+1,我得救了. (3认同)
  • 我尝试使用Centos 6.5并尝试了最新的(今天)GIT版本2.5.3,并且像魅力一样.`wget https:// www.kernel.org/pub/software/scm/git/git-2.5.3.tar.gz` (3认同)
  • 如果你仍然发现没有安装git那么它可能是由于pathmunge.您可以使用以下命令在您的环境中添加git.`echo"export PATH =/usr/local/git/bin:$ PATH">>/etc/bashrc`然后`source/etc/bashrc` (2认同)

Mar*_*ser 82

Rackspace维护着ius存储库,它包含一个合理的最新git,但必须先删除stock git.

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
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

  • 这是我尝试过的这个页面上的唯一方法(截至2018年9月7日),它确保了CentOS*的最新2.x git和*还确保安装了编译的`git-credential-libsecret` ,这是用于存储git凭证的最安全的os-native方法,例如用于http [s] URL.在撰写本文时,目前接受的答案(/sf/answers/1527450151/)不会执行这些操作并要求您自行编译. (2认同)

Jam*_*rne 9

我个人倾向于在安装非标准软件和更换分布式组件时为CentOS构建rpm包.为此,我建议您使用Mock创建一个干净的构建环境.

程序是:

  1. 获取源RPMS或合适的SPEC文件和原始源tarball.在这种情况下,可以在以下位置找到适用于CentOS-6的git2X的源RPM包: http://dl.iuscommunity.org/pub/ius/archive/CentOS/6/SRPMS/.其他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
    
    Run Code Online (Sandbox Code Playgroud)
  3. 添加一个rpm构建用户帐户(不要以root用户身份或以真实用户身份构建 - 安全问题再次出现在你面前).

    sudo adduser builder --home-dir /home/builder \
    --create-home --user-group --groups mock \
    --shell /bin/bash --comment "rpm package builder"
    
    Run Code Online (Sandbox Code Playgroud)
  4. 接下来我们需要一个构建环境.

    su -l builder
    rpmdev-setuptree
    
    Run Code Online (Sandbox Code Playgroud)

    这会产生以下目录结构:

    ~
    ??? rpmbuild
        ??? BUILD
        ??? RPMS
        ??? SOURCES
        ??? SPECS
        ??? SRPMS
    
    Run Code Online (Sandbox Code Playgroud)
  5. 我们正在使用准备好的SRPMS,因此在这种情况下可以忽略SOURCES tarball,我们可以直接转到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
    
    Run Code Online (Sandbox Code Playgroud)
  6. 配置mock(以root身份)

    cd /etc/mock
    rm default.cfg
    ln -s epel-6-x86_64.cfg default.cfg
    vim default.cfg
    
    Run Code Online (Sandbox Code Playgroud)

    禁用beta回购.启用baseupdate回购.

  7. 初始化构建树(默认为/ var/lib/mock)

    mock --init
    
    Run Code Online (Sandbox Code Playgroud)
  8. 如果我们从SOURCES构建,那么我们将使用SPEC文件并使用它mock --buildsrpm . . ..但在这种情况下,我们直接进入二进制构建步骤:

    mock --no-clean --rebuild ~/rpmbuild/SRPMS/git2u-2.5.3-1.ius.centos6.src.rpm
    
    Run Code Online (Sandbox Code Playgroud)

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

  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
    
    Run Code Online (Sandbox Code Playgroud)
  10. 使用yum或rpm安装.

    您将需要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`
      
      Run Code Online (Sandbox Code Playgroud)
    • 设置本地yum回购.

      我在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
Run Code Online (Sandbox Code Playgroud)

您可能还需要手动预安装其他依赖包,例如perl-TermReadKey通常的存储库中提供的依赖包.


Joe*_*ins 5

在CentOS 6上构建和安装现代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
Run Code Online (Sandbox Code Playgroud)


sas*_*shk 5

git在 Centos 6/7 上构建最新版本

准备系统以构建 rpm

  1. 安装 epel:

    对于 EL6,使用:

    sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm  
    
    Run Code Online (Sandbox Code Playgroud)

    对于 EL7,使用:

    sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
    
    Run Code Online (Sandbox Code Playgroud)
  2. 安装fedpkg

    sudo yum install fedpkg
    
    Run Code Online (Sandbox Code Playgroud)
  3. 将您自己添加到组模拟中(此更改后您可能需要重新登录服务器):

    sudo usermod -a -G mock $USER
    
    Run Code Online (Sandbox Code Playgroud)

下载git

  1. 下载git来源:

    fedpkg clone -a git && cd git
    fedpkg sources
    
    Run Code Online (Sandbox Code Playgroud)
  2. 验证来源:

    sha512sum -c sources
    
    Run Code Online (Sandbox Code Playgroud)

建立转速

  1. 创建 srmp.txt 用于el6RHEL6、el7RHEL7。

    fedpkg --dist el7 srpm
    
    Run Code Online (Sandbox Code Playgroud)
  2. 在模拟中构建包:

    mock -r epel-7-x86_64 git-2.16.0-1.el7.src.rpm
    
    Run Code Online (Sandbox Code Playgroud)
  3. 安装最新版本的gitrpm /var/lib/mock/epel-7-x86_64/result/。请注意,您可能需要先从系统中卸载现有版本的 git。

本说明基于Todd Zullinger 发布的邮件列表


Ali*_*emi 5

正如 git 所说

RHEL 和衍生产品通常会提供旧版本的 git。您可以下载 tarball 并从源代码构建,或者使用第三方存储库(例如 IUS 社区项目)来获取更新版本的 git。

有很好的教程在这里。在我的情况下(Centos7 服务器),安装后必须注销并再次登录。