博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
centos7升级git版本控制工具
阅读量:5956 次
发布时间:2019-06-19

本文共 2211 字,大约阅读时间需要 7 分钟。

问题描述

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

操作环境

centos7.0

软件准备

,

安装流程

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

yum remove git复制代码

2、安装相关依赖

yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel asciidocyum install  gcc perl-ExtUtils-MakeMaker复制代码

3、安装git

将压缩包解压到/usr/local/src目录tar -C /usr/local/src -vxf git-2.7.3.tar.xzcd 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-storelibgit.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 statusmake: *** [git-credential-store] Error 1复制代码

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

cd /usr/local/srcwget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gztar -zxvf libiconv-1.14.tar.gzcd libiconv-1.14配置./configure --prefix=/usr/local/libiconv编译make安装make install建立软连接ln -s /usr/local/lib/libiconv.so /usr/libln -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复制代码

如果有其他的问题,可以参考公众干号:浪子编程走四方

转载地址:http://gfgxx.baihongyu.com/

你可能感兴趣的文章
(MYSQL) Unknown table 'a' in MULTI DELETE的解决办法
查看>>
作为一个程序员必备的素质
查看>>
Webpack入门教程十四
查看>>
HDU - 3564 Another LIS(LIS+线段树)
查看>>
深入浅出JavaScript (五) 详解Document.write()方法
查看>>
hibernate简单入门教程(四)---------关联映射
查看>>
去 IOE,MySQL 完胜 PostgreSQL
查看>>
++i 和 i++ 性能上的区别
查看>>
Mysql运维管理-一主多从宕机从库切换主库继续和从库同步过程16
查看>>
Tomcat优化之配置NIO运行模式
查看>>
用XSLT和XML改进Struts
查看>>
WEB测试—功能测试
查看>>
在react或vue中,for循环用Index作为key值是好还是坏呢?
查看>>
2014.10.1 Form中显示pdf文件
查看>>
NERDTree 快捷键辑录
查看>>
Python数据分析Numpy库方法简介(一)
查看>>
javaWeb:相关监听方法汇总
查看>>
JSP 实现 之 读取数据库显示图片
查看>>
JS——特效秀
查看>>
【mybatis】mybatis使用java实体中定义的常量,或静态方法
查看>>