如何在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
相关问题:
- 在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.
- 安装WANDisco软件包:
yum install http://opensource.wandisco.com/centos/6/git/x86_64/wandisco-git-release-6-1.noarch.rpm
- 安装最新版本的Git 2.x:
yum install git
- 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环境。
程序是:
-
获取源RPMS或合适的SPEC文件和原始源代码包。 在这种情况下,可以在
http://dl.iuscommunity.org/pub/ius/archive/CentOS/6/SRPMS/
find用于CentOS-6的git2X的源代码RPM包。 其他CentOS版本的软件包也可用。 -
安装必要的支持软件:
yum install epel-release # you need this for mock yum install rpm-build yum install redhat-rpm-config yum install rpmdevtools yum install mock
-
添加一个rpm版本的用户帐户( 不要以root身份或真正的用户身份build立 – 安全问题会回来咬你 )。
sudo adduser builder --home-dir /home/builder \ --create-home --user-group --groups mock \ --shell /bin/bash --comment "rpm package builder"
-
接下来我们需要一个构build环境。
su -l builder rpmdev-setuptree
这会产生以下目录结构:
~ └── rpmbuild ├── BUILD ├── RPMS ├── SOURCES ├── SPECS └── SRPMS
-
我们正在使用一个准备好的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
-
configuration模拟(以root身份)
cd /etc/mock rm default.cfg ln -s epel-6-x86_64.cfg default.cfg vim default.cfg
禁用
beta
回购。 启用base
并update
回购。 -
初始化构build树(/ var / lib / mock是默认的)
mock --init
-
如果我们从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根位置和架构。 这将需要很长时间。 这个包有很多, 特别是文件。 -
如果一切顺利的话,你最终应该得到一套适合安装在发行版本中的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
-
使用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.rpm
和perl-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”软件包是有区别的一样。