Git服務器安裝詳解及安裝遇到問題解決方案


git是一個不錯的版本管理的工具。現在自己在搞一個簡單的應用程序開發,想使用git來進行管理。在Google了配置文檔后,還是受了N多的挫折。某些文檔質量不高,浪費了好多時間......

好,切入正題:

安裝必要的git工具

#apt-get install git git-core

centos linux 下載git

# wget https://www.kernel.org/pub/software/scm/git/git-2.8.1.tar.gz

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

  make prefix=/usr/local all doc
  make prefix=/usr/local install install-doc
 
  wget http://git-core.googlecode.com/files/git-1.7.10.tar.gz
  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 @INC

解決方法如下:

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下載源:
      http://git-scm.com/downloads(official website)
      http://code.google.com/p/git-core 
      https://github.com/git/git  (大陸的朋友建議使用后倆個源下載)
  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)常用方法安裝http://sourceforge.net/projects/asciidoc
/bin/sh: line 1: xmlto: command not found 
   xmlto這個包不太好找,不過有adam在,這些都是浮雲(呵呵)。下載地址:https://fedorahosted.org/releases/x/m/xmlto/,安裝方法同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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM