zoukankan      html  css  js  c++  java
  • Centos7升级Git版本

    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
    
    

    本文由博客一文多发平台 OpenWrite 发布!

  • 相关阅读:
    C#中调用DTS
    经典问题:向setTimeout传递函数参数
    C#.NET 中的类型转换
    SQL语句导入导出大全 (转载)
    js脚本defer的作用
    [转]使用 Java API 处理 WebSphere MQ 大消息
    WideCharToMultiByte 宽字节转换为多字节
    [原].NET数据库开发中请注意区域时间格式
    输出页眉和页脚的简单HTTP模块实践
    浅析ASP.NET HTTP Module
  • 原文地址:https://www.cnblogs.com/qqblog/p/11718123.html
Copyright © 2011-2022 走看看