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



>我使用了通常的:

yum install git

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

你可以使用 WANDisco 的 CentOS 資料庫來安裝 Git 2.x: 適用於 CentOS 6,適用於 CentOS 7

  1. 安装 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. 安装最新版本的 Git 2.x:

    yum install git
    
  3. 验证已安装的 Git 版本:

    git --version
    

截至 2020 年 3 月 2 日,WANDisco 的最新可用版本是2.22.0

在这里查看博客,我在其中一个评论中找到了解决方案。确保你已将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-extrasyum 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 包管理器删除任何先前安装的 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 目录添加到 bash rc 的方法。由于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

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

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

Rackspace 维护 ius 存储库,其中包含一个相当最新的 git,但必须先删除库存 git。

CentOS 6 或 7 指令(以根用户身份运行或使用 sudo 运行):

# retrieve and check CENTOS_MAIN_VERSION (6 or 7):
CENTOS_MAIN_VERSION=$(cat /etc/centos-release | awk -F 'release[ ]*' '{print $2}' | awk -F '.' '{print $1}')
echo $CENTOS_MAIN_VERSION
# output should be "6" or "7"
# Install IUS Repo and Epel-Release:
yum install -y https://repo.ius.io/ius-release-el${CENTOS_MAIN_VERSION}.rpm
yum install -y epel-release 
# re-install git:
yum erase -y git*
yum install -y git-core
# check version:
git --version
# output: git version 2.24.3

注意:git-all而不是git-core通常会安装旧版本。尝试例如git224-all

该脚本在 CentOS 7 docker 映像 (7e6257c9f8d8) 和 CentOS 6 docker 映像 (d0957ffdf8a2) 上进行测试。

我找到了这个很好且易于遵循的指南,介绍如何下载 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 包管理器删除任何先前安装的 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

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

程序是:

  1. 获取源 RPMS 或合适的 SPEC 文件和原始源压缩包。 在这种情况下,我们可以在以下位置找到 git2X for CentOS-6 的源码 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
    
  3. 添加一个 rpm 构建用户帐户(不要以 root 或真实用户身份构建 - 安全问题回来咬你)。

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

    su -l builder
    rpmdev-setuptree
    

    这将生成以下目录结构:

    ~
    └── rpmbuild
    ├── BUILD
    ├── RPMS
    ├── SOURCES
    ├── SPECS
    └── SRPMS
    
  5. 我们正在使用准备好的 SRPMS,因此在这种情况下可以忽略源压缩包,我们可以直接转到 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. 配置模拟(作为根)

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

    禁用beta存储库。启用baseupdate存储库。

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

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

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

    这将解析构建依赖项并将它们(大约 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
    
  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`
      
    • 设置本地 yum 存储库。

      我在下面包含我的LocalFile.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 上构建和安装现代 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/7 上构建最新版本的git

准备系统以建立转速

  1. 安装方式:

    对于 EL6,请使用:

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

    对于 EL7,请使用:

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

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

    sudo usermod -a -G mock $USER
    

下载git

  1. 下载git来源:

    fedpkg clone -a git && cd git
    fedpkg sources
    
  2. 验证来源:

    sha512sum -c sources
    

构建转速

  1. 创建 srmp。将el6用于 RHEL6,el7用于 RHEL7。

    fedpkg --dist el7 srpm
    
  2. 在模拟中构建包:

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

本说明基于Todd Zullinger的邮件列表帖子。

正如 git 所说:

RHEL 及其衍生产品通常提供旧版本的 git。您可以 下载压缩包并从源代码构建,或使用第三方 存储库,如 IUS 社区项目,以获得更新的 的 git 版本。

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

本指南有效:

# hostnamectl
Operating System: CentOS Linux 7 (Core)
# git --version
git version 1.8.3.1
# sudo yum remove git*
# sudo yum -y install https://packages.endpointdev.com/rhel/7/os/x86_64/endpoint-repo.x86_64.rpm
# sudo yum install git
# git --version
git version 2.24.1

这是我在 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,就像AnacondaPython一样。

我从存档在命令行上安装了 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 版本。今天是 12/26/2016,版本是 2.9.3。

这可能无关紧要。它适用于人们不想在主机上构建最新的 git,同时他们仍然可以获得最新的 git。

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

是的,缺点是你必须安装 docker。但是,最少的依赖项被引入主机,您不必安装其他 yum 存储库。

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

如果 git 已经先安装,请先删除旧的 git

sudo yum remove git*

并安装最新版本的 git

yum install -y git-core

检查版本 git --version

宾果游戏!!

在没有经过大量测试和思考的情况下,用附加存储库替换上游基础存储库可能会非常混乱和危险。特别是RPMforge,实际上已经奄奄一息,没有得到更新。

我个人发布了用于构建 git 2.4 的工具,包装为一个替代名称的"git24"包,https://github.com/nkadel/git24-srpm/。如果您希望将软件包与标准系统软件包区分开来,请随意访问和分叉这些软件包,就像"samba"和"samba4"软件包是不同的一样。

相关内容

  • 没有找到相关文章

最新更新