轉:Git伺服器安裝詳解及安裝遇到問題解決方案

luckyfriends發表於2016-12-27

http://www.cnblogs.com/grimm/p/5368777.html
git是一個不錯的版本管理的工具。現在自己在搞一個簡單的應用程式開發,想使用git來進行管理。在Google了配置文件後,還是受了N多的挫折。某些文件質量不高,浪費了好多時間......

好,切入正題:

安裝必要的git工具

#apt-get install git git-core

centos linux 下載git

# wget

備註:安裝時可能會遇到若干問題:
  1.編譯缺少lib,使用yum安裝
  2.沒有設定prefix,不知道安裝到那裡
  3.安裝完成直接執行git無反應,需要建立軟連線

  make prefix=/usr/local all doc
  make prefix=/usr/local install install-doc
 
  wget
  tar zxvf git-1.7.10.tar.gz
  cd git-1.7.10
  ./configure --prefix=/usr/local/git
  make
  make install
  git依賴zlib-devel,openssl-devel,perl,cpio,expat-devel,gettext-devel這些包,如果出錯基本上也是這些包造成的。我在安裝時出現瞭如下錯誤。
 
  出現錯誤一:
  usr/bin/perl Makefile.PL PREFIX='/usr/local/git' INSTALL_BASE='' --localedir='/usr/local/git/share/locale'
  Can't locate ExtUtils/MakeMaker.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5   /usr/share/perl5 .) at Makefile.PL line 3.
  BEGIN failed--compilation aborted at Makefile.PL line 3.
  make[1]: *** [perl.mak] Error 2
  make: *** [perl/perl.mak] Error 2
  執行:
    yum install perl-ExtUtils-MakeMaker package.
  行進安裝
  出現錯誤二:
   /bin/sh: msgfmt: command not found
  yum install gettext-devel
  可解決!
   

Git在make的時候報錯:Can't locate ExtUtils/MakeMaker.pm in 

解決方法如下:

yum -y install perl-devel perl-CPAN

 

git 需要perl來編譯。然後重新make

 

Git Make時出現:tclsh failed; using unoptimized loading

    MSGFMT    po/bg.msg make[1]: *** [po/bg.msg] 錯誤 127

 

yum install tcl  build-essential tk gettext

 

安裝之後使用https操作git 出現 :fatal: Unable to find remote helper for 'https'

yum install -y curl curl-devel

然後重新安裝 git

 

安裝之後 git --version 仍然是舊版本(1.7.12)

git 安裝時不使用--prefix指定安裝目錄,預設安裝到/usr/local/bin/git ,需要把/usr/local/bin/git 複製或者ln到 /usr/bin/git

  為了省時間,你可以利用各distribution的包管理工具來一鍵安裝。若是條件允許,從原始碼安裝有很多好處,至少可以安裝最新的版本。Git 的每個版本都在不斷嘗試改進使用者體驗,所以能透過原始碼自己編譯安  裝最新版本就再好不過了。有些 Linux 版本自帶的安裝包更新起來並不及時,所以除非你在用最新的 distro 或者 backports,那麼從原始碼安裝其實該算是最佳選擇。
  Git 的工作需要呼叫 curl,zlib,openssl,expat,libiconv 等庫的程式碼,所以需要先安裝這些依賴工具。在有 yum 的系統上(比如 Fedora)或者有 apt-get 的系統上(比如 Debian 體系),可以用下面的命  令安裝:
  0. Git安裝前環境配置:
      $ yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel 
      $ apt-get install libcurl4-gnutls-dev libexpat1-dev gettext libz-dev libssl-dev 
  1. Git下載源:
      (official website)
      
        (大陸的朋友建議使用後倆個源下載)
  2. 解壓縮包並進入Git目錄:
     $ sudo tar zxf git-1.8.0.tar.gz 
     $ cd git-1.8.0
  3. 編譯原始碼:
     $ sudo make prefix=/usr/local/git all doc
     // 這裡同時指定all和doc這兩個目標,指定doc是為了安裝git的幫助文件到man手冊裡面,只指定all的話,預設並不包含git的幫助文件,這樣在man手冊中就查不到git的幫助。
  *********************************************************************
  在編譯all目標時,可能會報下面的錯:
        /bin/sh: curl-config: not found
        fatal error: openssl/ssl.h: No such file or directory
     這是因為git原始碼需要的一些開發包沒有被安裝。我是透過安裝下面的包來解決這個問題的:
     $ sudo yum install libcurl4-openssl-dev
     網上有個方法是安裝libssl-dev包,這個方法可以解決 fatal error: openssl/ssl.h: No such file or directory 的問題,但是/bin/sh: curl-config: not found問題還是存在,編譯的時候還是編不過。在我的  機子上,安裝libcurl4-openssl-dev能同時解決這兩個問題,安裝libcurl4-openssl-dev時,會自動安裝libssl-dev包。
  在編譯doc目標時,可能會報下面的錯:
            /bin/sh: line 1: asciidoc: command not found
   這個包可以到這裡下載並執行make(./configure ;make ;make install)常用方法安裝
/bin/sh: line 1: xmlto: command not found 
   xmlto這個包不太好找,不過有adam在,這些都是浮雲(呵呵)。下載地址:,安裝方法同asciidoc。
************************************************************************
4. 安裝:
   $ sudo make prefix=/usr/local/git install install-doc
   // 這裡同樣,如果想要在man手冊中看到git的幫助文件,需要額外安裝,即上面的install-doc。如果只指定install目標的話,在man手冊中是查不到git的相關命令幫助的。
5. 檢視新安裝的git版本號:
   $ ./usr/local/git/bin/git --version
   git version 1.8.0
6. 為了以後使用方便,我們這裡做一個軟連線:
   $ ln -s /usr/local/git/bin/* /usr/bin/
   
   
=================================================
極速安裝git最新版(update 20131209):
$ git clone git://git.kernel.org/pub/scm/git/git.git
$ make prefix=/usr/local all        (編譯)
$ sudo make prefix=/usr/local install       (安裝)
=================================================

安裝好了以後,進行設定

1. 建立一個git目錄

#mkdir /git

#cd /git/

#mkdir myproject

2. 建立一個空的git倉庫

#git-init-db

3. 建立工程的檔案

# echo "My test project" > test.txt


* 此步很重要,如果要在遠端clone這個project, 這個project必須是非空的,否則會失敗。

4. 使用git命令新增並提交新的檔案

#git-add test.txt

#git-commit -m "Init"

至此,本地的git 倉庫就建立好了。想要在遠端clone這個project,還需要使用git-daemon

5. 安裝git-daemon-run.  git-daemon-run實際是一個指令碼管理工具,用來啟動git-daemon.

#apt-get install git-daemon

6. 配置git-daemon-run

#vi /etc/sv/git-daemon/run

可以看到

#!/bin/sh
exec 2>&1
echo 'git-daemon starting.'
exec chpst -m64000000 /

  git-daemon --verbose --base-path=/var/cache /var/cache/git

將最後一句的git-daemon修改為


  git-daemon --verbose --export-all --base-path=/git/

* 這裡,我加上了一個--export-all.看下man手冊就可以知道,使用該選項後,在git倉庫中就不必建立git-daemon-export-ok檔案。如果不使用該選項,則在第4步還需要建立該檔案,即

#touch git-daemon-export-ok

7.使用git-daemon-run工具重啟git-daemon,乾脆重啟下系統

8. 從client匯出server(192.168.35.69)上的myproject

git-clone git://192.168.35.69/myproject

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/14710393/viewspace-2131492/,如需轉載,請註明出處,否則將追究法律責任。

相關文章