Ubuntu Server 11.04
git的源碼包安裝
1. server版系統默認安裝時沒有gcc工具,須要額外安裝,desktop已經有了
當機器能夠鏈接外網後就能夠經過sudo apt-get 來安裝了 (注意:要先更新一下包源列表,sudo apt-get update 要否則apt-get只會從本地去找對應的包,確定找不到了)
2. 解壓git源碼包,我用的是git-1.7.4.2.tar.bz2
3. git 依賴的包
Depends: libc6 (>= 2.7), libcurl3-gnutls (>= 7.16.2-1), libexpat1 (>= 1.95.8),
zlib1g (>= 1:1.2.0), perl-modules, liberror-perl, git-man (>
1:1.7.4.1), git-man (< 1:1.7.4.1-.), emacsen-common
3. 修改源碼目錄的權限通常是755
4. cd 如源碼目錄, ./configure
5. make
6. make install
apt-get安裝
sudo apt-get install git或者sudo apt-get install git-core git-doc
SSH訪問
須要在服務器先安裝openssh-server並啓動其服務
1. 建立一個git用戶 用於服務器的管理
sudo adduser --system --shell /bin/bash --group git
sudo passwd git 修改git的密碼
2. su git 進入git用戶 生成ssh的key
3 客戶機生成ssh的key
ssh-keygen
4. 把客戶機生成的ssh公匙上傳到服務器,而後運行
cat /path/to/user1.pub >> ~anonymous/.ssh/authorized_keys 把你的公匙加到認證裏面這樣就能夠經過
(注: 這一步能夠不用由於在gl-setup會自動加入)
gitolite的安裝配置
2. 進入源碼的src目錄注意,原來的./gl-easy-install 安裝方式已經被./gl-system-install 替代了
會在當前用戶的根目錄下生成bin和share兩個目錄, bin中的腳步和源碼中的腳本基本一致
3. 加入環境變量PATH=/home/git/bin:$PATH
4. 把客戶機的ssh公匙拷貝到/home/git目錄下 添加爲gitolite管理員帳號
gl-setup /path/to/user1.pub
成功後會在/home/git目錄下生成repositories目錄和projects.list文件 repositories目錄裏面有gitolite-admin.git和testing.git
gitolite-admin.git就是管理員的庫,管理員把它clone出來添加用戶,配置權限而後在push到服務器就起效果了
若是要修改gitolite默認的庫路徑須要修改/home/git目錄下的.gitolite.rc文件
5. 客戶機克隆出gitolite-admin庫就能夠進行用戶和權限的管理了。將用戶的key拷貝到keydir目錄下而後add 、commit、push用戶就添加完成了
權限的控制是在conf/gitolite.conf文件中,權限的具體配置規則詳見gitolite的文檔,一樣權限修改以後也須要add、commit、push纔會起效果
若是要修改repositories目錄的名稱或者路徑,須要在安裝gitolite時修改,安裝完成後就不能修改了。
定義ssh鏈接服務器的別名
在.ssh目錄下建立config文件,內容格式以下
host 別名
user 服務器用戶名
hostname 服務器名或ip
IdentityFile 本機密匙文件
實例
host gitDemo
user git
hostname 192.168.32.92
IdentityFile ~/.ssh/id_rsa
就能夠用
配置遠程能夠建立配置庫的權限
gitolite.conf文件加入以下配置
repo demo/.+
RW =
@admin
push以後就能夠用git push gitDemo:demo/demo1.git master 在遠程git用戶目錄的repositories目錄下建立一個demo目錄及一個demo1.git的庫
安裝配置gitweb
1. sudo apt-get install gitweb
2. sudo apt-get install apache2
3. mkdir /home/<name>/gitweb
4. sudo ln -sf /usr/share/gitweb/* /home/<name>/gitweb
5. ln -s <git project path> /home/<name>/gitweb
6. sudo vi /etc/gitweb.conf
$projectroot = "/home/<name>/gitweb";
7. sudo vi /etc/apache2/conf.d/gitweb
<VirtualHost *:80>
ServerName gitDemo
ScriptAlias /gitweb /usr/lib/cgi-bin/
DirectoryIndex /gitweb/gitweb.cgi
DocumentRoot /home/clean/gitweb
ErrorLog /var/log/apache2/git.pcware.cn-error.log
Customlog "/var/log/apache2/git.pcware.cn-error.log" combined
</VirtualHost>
8. sudo /etc/init.d/apache2 restart
9. chmod -R 755 <git repo path>
能夠經過修改${GIT_DIR}/description來修改git repo的文字描述。
Gitweb配置不用虛擬機方式
1.安裝gitweb apt-get install gitweb
2.卸載apt-get remove gitweb
3.安裝apache2服務器 apt-get install apache2
4.安裝成功後會發現gitweb的配置文件在/usr/share/gitweb中,cgi文件存放在 /usr/lib/cgi-bin下
5.建立目錄home/usrname/gitweb 並將git庫存放在此目錄下或者將git庫鏈接於此命令爲:ln –sf git庫地址 gitweb路徑此處爲(/home/usrname/gitweb),爲了可以實時更新gitweb的內容須要修改git庫中的post-update使任何人都有執行權限方法以下:chmod 755 /.git/hooks/post-update
6.將gitweb的配置文件連接到gitweb目錄命令爲:ln -sf /usr/share/gitweb /home/usrname/gitweb
7.將gitweb.cgi拷貝到/home/usrname/gitweb下
8.修改apache設置編輯/etc/apache2/httpd.conf 添加以下內容:ServerName
127.0.0.1:80
9.修改gitweb.conf (/ect/apache2/conf.d/gitweb.conf)添加內容以下:
Alias /gitweb /home/usrname/gitweb
<Directory /home/usrname/gitweb>
Options +Indexes +ExecCGI +FollowSymLinks
AllowOverride All
order allow,deny
allow from all
AddHandler cgi-script cgi
DirectoryIndex gitweb.cgi
</Directory>
10. 配置完畢後重啓apache2服務。命令爲:sudo /etc/init.d/apache2 restart
11. 在瀏覽器中輸入本機ip地址/gitweb就能夠訪問git服務了
例如
http://192.168.110.120/gitweb
注意: 從gitolite克隆倉庫的時候是用相對路徑例如倉庫在/home/git/demo/demo1.git只須要用git clone gitDemo:demo1.git
SSH KEY的如下錯誤將.ssh目錄的權限改成700就能夠了
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0744 for '/home/git/.ssh/id_rsa' are too open.