1. 程式人生 > >centos升級Git 源代碼編譯安裝

centos升級Git 源代碼編譯安裝

local 環境 close class con 一次 usr perl OS

準備工作:

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.16.2.tar.gz
# tar -zxvf git-2.16.2.tar.gz

安裝註意事項:

# cd git-2.16.2
# 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.16.2




centos升級Git 源代碼編譯安裝