CentOS 7 升级最新版本git

本文介绍如何在CentOS系统上从源码编译安装最新版本的Git,并解决了在编译过程中遇到的关于libiconv的链接错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

准备工作:

CentOS 上的最新git版本也只有1.8.3,就想试着装上最新的版本,没想到差点玩脱,全当记录一次冒险经历

  • Development tools 没装的要装上,不然GCC编译时会出错
# yum -y groupinstall Development tools
  • GCC 用于编译安装包
# yum install gcc perl-ExtUtils-MakeMaker
  • 再卸载CentOS自带的老版本git
# yum -y remove git

下载git并安装

# cd /usr/src
# wget https://www.kernel.org/pub/software/scm/git/git-2.12.0.tar.gz
# tar xzf git-2.12.0.tar.gz
安装注意事项:
# cd git-2.12.0
# make prefix=/usr/local/git all

此时报错

/usr/src/git-2.12.0/utf8.c:463:对‘libiconv’未定义的引用
libgit.a(utf8.o):在函数‘reencode_string_len’中:
/usr/src/git-2.12.0/utf8.c:524:对‘libiconv_open’未定义的引用
/usr/src/git-2.12.0/utf8.c:535:对‘libiconv_close’未定义的引用
/usr/src/git-2.12.0/utf8.c:529:对‘libiconv_open’未定义的引用
collect2: 错误:ld 返回 1
make: *** [git-credential-store] 错误 1

原方案:

# make prefix=/usr/local/git all
# make prefix=/usr/local/git install

解决方案:

可替换为

# ./configure --without-iconv
# make CFLAGS=-liconv prefix=/usr/local/git all
# make CFLAGS=-liconv prefix=/usr/local/git install

最后将git加入环境变量

# echo "export PATH=$PATH:/usr/local/git/bin" >> /etc/bashrc
# source /etc/bashrc

大功告成!查看一下git的版本

# git --version
>> git version 2.12.0
### 升级 Git 版本的方法 在 CentOS 7 系统上升级 Git 版本,可以通过多种方式实现。由于默认的 CentOS 软件仓库中提供的 Git 版本可能较旧,用户通常需要使用其他方法来获取更新的版本。 #### 使用 IUS 社区仓库升级 Git IUS(Inline with Upstream Stable)是一个社区维护的软件仓库,提供了比 EPEL 和默认 CentOS 仓库更新的软件包。通过添加 IUS 仓库并安装其提供的 Git 包,可以轻松完成升级。 ```bash # 安装 IUS 仓库 sudo yum install -y https://centos7.iuscommunity.org/ius-release.rpm # 更新软件包列表 sudo yum makecache fast # 安装最新版 Git sudo yum install -y git2u ``` 安装完成后,可以通过以下命令验证 Git 版本是否已成功升级: ```bash git --version ``` 此方法的优势在于它提供了稳定的更新渠道,并且操作简单[^1]。 #### 编译安装 Git 源代码 如果需要特定功能或最新的开发版本,可以从源代码编译安装 Git。这种方法虽然较为复杂,但能够提供最大的灵活性。 ```bash # 下载 Git 源代码包 cd /usr/local/src/ sudo wget https://www.kernel.org/pub/software/scm/git/git-2.30.0.tar.gz sudo tar -zxvf git-2.30.0.tar.gz cd git-2.30.0 # 编译并安装 Git sudo make prefix=/usr/local all sudo make prefix=/usr/local install ``` 编译完成后,同样可以通过 `git --version` 命令检查新安装的 Git 版本。需要注意的是,在进行源代码编译之前,确保系统已经安装了必要的依赖项,如 GCC 编译器、make 工具等[^2]。 #### 使用第三方仓库升级 Git 除了 IUS 外,还有其他的第三方仓库如 Remi 或者直接从 GitHub 获取 RPM 包等方式也可以用来升级 Git。例如,GitLab 提供了一些 Git 的 RPM 包,可以作为替代来源[^3]。 ```bash # 示例:从指定镜像下载 Git RPM 包 wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-12.0.2-ce.0.el7.x86_64.rpm ``` 然后使用 `yum` 或 `rpm` 命令进行安装。 选择合适的方法取决于具体需求和环境配置。对于大多数用户来说,使用 IUS 仓库是最简便有效的方式;而对于有特殊需求的开发者,则可以选择源码编译安装以获得最新特性或定制化设置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值