天天看點

centos編譯安裝 Git

centos安裝Git有兩種方式,一種通過源安裝,通過如下命今,即可一鍵安裝成功:

yum -y install git           

複制

但是通過源安裝的Git,目前最高版本是1.7,想要使用更多新功能、更新版本的Git,就隻能通過編譯安裝的方式來進行安裝了,下面就來具體介紹這種安裝過程。

1、先安裝依賴包
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel           

複制

2、下載下傳Git源碼包,并解壓
cd /usr/local/src
wget https://github.com/git/git/archive/v1.9.5.tar.gz
tar -zxvf git-1.9.5.tar.gz           

複制

3、編譯并安裝
cd git-1.9.5
make configure
./configure --prefix=/usr/local/ --with-iconv=/usr/local/libiconv/
make && make install           

複制

安裝過程中,可能會出現如下錯誤:

LINK git-credential-store 
libgit.a(utf8.o): In function `reencode_string_iconv': 
/opt/git-master/utf8.c:530: undefined reference to `libiconv' 
libgit.a(utf8.o): In function `reencode_string_len': 
/opt/git-master/utf8.c:569: undefined reference to `libiconv_open' 
/opt/git-master/utf8.c:588: undefined reference to `libiconv_close' 
/opt/git-master/utf8.c:582: undefined reference to `libiconv_open' 
collect2: ld 傳回 1 
make: *** [git-credential-store] 錯誤 1           

複制

分析問題原因是找不到libiconv擴充包,包裝libiconv包即可解決:

cd /usr/local/src
#請勿下載下傳更新版的libiconv包,1.14版本已經夠用,
#否則在運作Git時,會出現“/usr/local/bin/git: undefined symbol: locale_charset ”的錯誤
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           

複制

libiconv安裝成功後,再切回到git目錄下面:

cd /usr/loca/src/git-1.9.5           

複制

然後重新執行“步驟3”,Git基本安裝完成。

4、檢視Git版本
git --version           

複制

通過如上指令檢視Git版本,系統卻提示:

bash: /usr/bin/git: No such file or directory           

複制

說明在“/usr/bin/”目錄裡,并沒有Git的執行程式。

通過指令查找Git執行程式的目錄:

which git           

複制

發現Git執行程式的目錄在:

/usr/local/bin/git           

複制

通過如下指令,将之與“/usr/bin/”目錄建立軟連結:

sudo ln -s /usr/local/bin/git /usr/bin/git           

複制

再檢視下版本:

git --version           

複制

如下圖所示,Git即完全安裝成功!

centos編譯安裝 Git
  • 本站文章除注明轉載外,均為本站原創
  • 歡迎任何形式的轉載,但請務必注明出處,尊重他人勞動
  • 轉載請注明:文章轉載自:Marser [https://www.marser.cn]
  • 本文标題:centos編譯安裝 Git
  • 本文固定連結: https://www.marser.cnarticle/72.html