菜单 学习猿地 - LMONKEY

VIP

开通学习猿地VIP

尊享10项VIP特权 持续新增

知识通关挑战

打卡带练!告别无效练习

接私单赚外块

VIP优先接,累计金额超百万

学习猿地私房课免费学

大厂实战课仅对VIP开放

你的一对一导师

每月可免费咨询大牛30次

领取更多软件工程师实用特权

入驻
3017
0

CentOS7 升级 Git 历程

原创
05/13 14:22
阅读数 2775

 centos 升级 Git 版本

 问题描述

centos7 系统默认的 git 安装版本是 1.8,但是在项目构建中发现 git 版本过低,于是用源码编译的方式进行升级.同时该文章也适用于安装新的 git,相信大家对 git 都有一定的了解了,在文章过程中有的步骤也就不细细讲了.

 操作环境

centos7.0

 软件准备

git 版本,libiconv

 安装流程

1、第一步卸载原有的 git。


yum remove git

2、安装相关依赖

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

3、安装 git


将压缩包解压到/usr/local/src目录

tar -C /usr/local/src -vxf git-2.7.3.tar.xz

cd git-2.7.3

// 编译

make prefix=/usr/local/git all

// 安装

make prefix=/usr/local/git install

// 写入到环境变量中(方法一)

echo "export PATH=$PATH:/usr/local/git/bin" >> /etc/profile && source /etc/profile

// 写入到环境变量中(方法二)

export PATH=$PATH:/usr/local/bin/git

// 查看是否已经安装成功

git --version

 问题解决

正常的流程就是按照上面的流程进行安装即可,下面总结一些在安装过程中遇到的几个问题.

1、make prefix=/usr/local/git all 进行编译的时候提示如下错误


 LINK git-credential-store

libgit.a(utf8.o): In function `reencode_string_iconv':

/usr/src/git-2.8.3/utf8.c:463: undefined reference to `libiconv'

libgit.a(utf8.o): In function `reencode_string_len':

/usr/src/git-2.8.3/utf8.c:502: undefined reference to `libiconv_open'

/usr/src/git-2.8.3/utf8.c:521: undefined reference to `libiconv_close'

/usr/src/git-2.8.3/utf8.c:515: undefined reference to `libiconv_open'

collect2: ld returned 1 exit status

make: *** [git-credential-store] Error 1

这个问题主要是系统缺少 libiconv 库导致的。根据上面提供的链接,下载 libiconv 即可。


cd /usr/local/src

wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz

tar -zxvf libiconv-1.14.tar.gz

cd libiconv-1.14

配置

./configure --prefix=/usr/local/libiconv

编译

make

安装

make install

建立软连接

ln -s /usr/local/lib/libiconv.so /usr/lib

ln -s /usr/local/lib/libiconv.so.2 /usr/lib

这时候还 libiconv 库已经安装完成,下面进入我们的 git 安装目录,按照下面的方式进行安装


make configure

./configure --prefix=/usr/local --with-iconv=/usr/local/libiconv

编译

make

安装

make install

加入环境变量

export PATH=$PATH:/usr/local/bin/git

检测版本号

git --version

2、在安装 libiconv 时会遇到./stdio.h:1010:1: error: 'gets' undeclared here (not in a function)的错误提示,进行下面的操作即可解决.


进入错误文件路径

cd libiconv-1.14/srclib

编辑文件stdio.in.h找到698行的样子,内容是_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");

将这一行注释掉(注意注释一定要用/**/来进行注释),替换为下面的内容

#if defined(__GLIBC__) && !defined(__UCLIBC__) && !__GLIBC_PREREQ(2, 16)

_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");

#endif
git

发表评论

0/200
3017 点赞
0 评论
收藏
为你推荐 换一批