1. 程式人生 > >Git服務器安裝詳解及安裝遇到問題解決方案【轉】

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

bsp erb 倉庫 .... gnu libcurl 執行 body ebs

轉自:http://www.cnblogs.com/grimm/p/5368777.html

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

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