Linux 搭建Git
想了解Git 可以訪問 http://git-scm.com,這裏介紹CentOS下如何安裝,如果不知道自己系統,請使用命令:cat /etc/redhat-release
依賴包
Git的依賴包:curl ,curl-deve,zlib-devel,openssl-devel,perl ,cpio ,expat-devel,gettext-devel
1.檢查依賴包是否安裝:rpm -qa | grep <包名>
,如果沒有請安裝:yum install <包名>
安裝
yum install httpd git
如果不是想要的版本請卸載
yum erase git
下載源代碼
到官網https://github.com/git/git/releases下載想要的版本,這裏選2.2.0
wget https://github.com/git/git/archive/v2.2.0.tar.gz -o git.tar.gz
解壓 並cd到源碼目錄
tar -xzvf git.tar.gz
cd git-*
預編譯
在源碼目錄中編譯
注:configure腳本做一些編譯前檢查,-prefix 用於指定生成的Makefile .Makefile將告訴make命令如何編譯和安裝git
make configure
./configure --prefix=/usr
也可以用autoconf腳本
autoconf
./configure --prefix=/usr
安裝
到Mackfile目錄編譯安裝
sudo make install
也可以這樣裝
make prefix=/usr all doc info
make prefix=/usr install install-doc install-html install-info
安裝中的錯誤
makfile 報錯
1.請安裝:yum install perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker
2.安裝docbook2x
wget http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
rpm -Uvh epel-release*rpm
yum install docbook2X
cd /usr/bin
ln -s db2x_docbook2texi docbook2x-texi
Error: Cannot retrieve metalink for repository: epel. Please verify its path and try again
解決辦法是編輯/etc/yum.repos.d/epel.repo,把基礎的恢復,鏡像的地址註釋掉
#baseurl
mirrorlist
改成
baseurl
#mirrorlist
如何升級git還沒搞定,求指點
安裝Gitosis
sudo apt-get install python-setuptools
mkdir ~/src
cd ~/src
git clone https://github.com/res0nat0r/gitosis.git
cd gitosis
sudo python setup.py install
在客戶端生成公鑰
cd ~/.ssh(查看是否已經有SSH 公鑰)
//生成公鑰 默認使用rsa,也可以用dsa,rsa1 如命令:ssh-keygen -t dsa
ssh-keygen -f ~/.ssh/[file name]
/**添加公鑰到服務器** 或者copy 到tmp目錄**/
$ ssh user@host 'mkdir -p .ssh && cat >> .ssh/authorized_keys' < ~/.ssh/id_rsa.pub
/**copy命令**/
scp id_rsa.pub user@host:/tmp
1> authorized_keys文件的權限一定要修改爲600
2> .ssh的文件如果是手動創建的話權限一定要修改爲700
在服務器端追加公鑰
su - git
gitosis-init < /tmp/id_rsa.pub
/**添加git 用戶**/
sudo useradd git
su git
cd
mkdir .ssh
/**創建git倉庫存儲目錄,並設置權限**/
sudo mkdir /home/git/repositories
sudo chown git:git /home/git/repositories
sudo chmod 755 /home/git/repositories
su - git
gitosis-init < /tmp/id_rsa.pub
Git 學習資源