小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Git服務(wù)器在Ubuntu中的搭建

 TIDEDOC 2013-07-31
分類: Linux/Unix 29647人閱讀 評(píng)論(8) 收藏 舉報(bào)

    公司最近準(zhǔn)備啟用git來(lái)管理公司項(xiàng)目,在CTO張頭的帶領(lǐng)下,歷經(jīng)挫折,終于完成了git服務(wù)器的配置工作。在使用Git之前,大家首先要明確幾個(gè)概念:git服務(wù)器、git客戶端和git服務(wù)器管理員。本文中使用ubuntu當(dāng)作git服務(wù)器,pcA和pcB分別作為服務(wù)器管理員和git客戶端。通常,git服務(wù)器上需要安裝OpenSSH Server、Git、Gitosis和Apache2(如果想使用Gitweb的話)。

    本文將主要介紹git服務(wù)端和管理員相關(guān)的一些配置方法,客戶端及管理員的git操作方法將在另一篇文章中作詳細(xì)介紹。

(一)   Git服務(wù)端

1.請(qǐng)使用apt-get update和apt-get upgrade命令更新當(dāng)前系統(tǒng),如果不更新,在后面安裝一些程序的時(shí)候可能會(huì)出現(xiàn)某些依賴包沒(méi)安裝的現(xiàn)象。

 

2.安裝OpenSSH Server( ubuntu (當(dāng)前用戶為wirror800)

    首先,使用ps -e|grep ssh命令,檢查本機(jī)上是否已經(jīng)運(yùn)行ssh服務(wù)。如果沒(méi)有,繼續(xù);否則,跳過(guò)此步驟。

    執(zhí)行命令:

    sudo apt-get install openssh-server

 

3.修改ssh服務(wù)端配置文件 /etc/ssh/sshd_config (當(dāng)前用戶為wirror800)

   Port 22 # 修改成你想要的登陸端口,如2222

   PermitRootLogin no # 禁止root用戶登陸

   StrictModes yes # 檢查密鑰的用戶和權(quán)限是否正確,默認(rèn)打開的

   RSAAuthentication yes # 啟用 RSA 認(rèn)證

   PubkeyAuthentication yes # 啟用公鑰認(rèn)證

   PasswordAuthentication no # 禁止密碼認(rèn)證,默認(rèn)是打開的

   ServerKeyBits 1024 # 修改后變?yōu)榇藸顟B(tài),將ServerKey強(qiáng)度改為1024比特

   PermitEmptyPasswords no # 修改后變?yōu)榇藸顟B(tài),禁止空密碼進(jìn)行登錄

 

   修改完成后,重啟ssh服務(wù):

   sudo /etc/init.d/ssh restart

   注意:至此,服務(wù)端SSH的操作就已經(jīng)結(jié)束了。網(wǎng)上說(shuō)的“ id_rsa文件拷貝到Client端的~/.ssh/目錄下,將id_rsa.pub拷貝到

Server端的~/.ssh/目錄下,改名為authorized_keys ”其實(shí)都是不準(zhǔn)確的。id_rsa是使用 ssh-keygen生成的rsa私鑰, id_rsa.pub

是同時(shí)生成的公鑰,服務(wù)器端通信使用的秘鑰可以應(yīng)該由服務(wù)器管理員來(lái)創(chuàng)建和管理,如果你想把當(dāng)前用戶wirror800作為管理

員也是可以的,相關(guān)管理員的操作見(jiàn)本文第二部分。不推薦在ubuntu服務(wù)器端建立管理員賬號(hào)。

    建議大家參考一下OpenSSH的相關(guān)內(nèi)容:http://www./doc/zh_CN/books/handbook/openssh.html

 

4.安裝git (當(dāng)前用戶為wirror800)

    sudo apt-get install git-core

    安裝git過(guò)程中可能會(huì)遇到一些依賴包下載失敗的情況,主要是由于ubuntu的中文站點(diǎn)訪問(wèn)的問(wèn)題,我們可以到其英文站點(diǎn)

上下載相關(guān)文件并進(jìn)行手動(dòng)安裝。給大家一個(gè)鏈接地址:

     http://archive./ubuntu/pool/main/

 

5.安裝gitosis(為什么要使用gitosis是大家首先需要明確的問(wèn)題) (當(dāng)前用戶為wirror800)

    (1)在你喜歡的位置下,新建一個(gè)文件夾,用來(lái)存放下載的gitosis文件,如

    mkdir ~/gitosis_setup

    (2)安裝gitosis

    cd ~/ gitosis_setup

    git clone git://eagain.net/gitosis

    cd gitosis

    sudo python setup.py install

    注意:如果python setup.py install失敗,需要安裝python-setuptools.py

    sudo apt-get install python-setuptools.py

 

6. 為gitosis創(chuàng)建系統(tǒng)用戶 (當(dāng)前用戶為wirror800)

     sudo adduser --system --shell /bin/sh --gecos 'git SCM user' --group --disabled-password --home /home/git  git

     這種方法是網(wǎng)上比較常見(jiàn)的方法,創(chuàng)建的是一個(gè)禁用密碼的git用戶,但在使用su命令切換git用戶的時(shí)候,空密碼老是

驗(yàn)證失敗,大家可以使用下面的方法來(lái)創(chuàng)建git用戶:

      sudo useradd -m git

      sudo password git

 

7. 運(yùn)行g(shù)itosis(當(dāng)前用戶為wirror800)

      (1)將管理員生成的公鑰上傳或拷貝到服務(wù)器上。這里的公鑰需要在git服務(wù)器管理員下使用ssh-keygen -t rsa命令來(lái)創(chuàng)建,

網(wǎng)上流傳的方法是scp /your pub_path/id_rsa.pub ${SERVER_IP}:id_rsa.pub。我們這里使用的是直接U盤拷貝的方法。

      (2)初始化gitosis

      進(jìn)入到拷貝過(guò)來(lái)的id_rsa.pub所在目錄:cd /tmp

      sudo chmod 777 id_rsa.pub

      sudo -H -u git gitosis-init < id_rsa.pub (或者切換到git用戶下執(zhí)行gitosis-init < id_rsa.pub也可以,記得exit切換回當(dāng)前用戶)

      此時(shí),會(huì)在/home/git目錄下生成一些目錄,如果想要?jiǎng)e人能夠clone gitosis-admin.git,需要執(zhí)行以下操作:

      sudo chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update

 至此,gitosis的安裝工作已完成,其相關(guān)配置可以有管理員來(lái)操作,然后再提交到服務(wù)器上。以下是關(guān)于gitweb的安裝配置,

不需要的同學(xué),請(qǐng)?zhí)^(guò)下面的8~10步。

 

8.安裝gitweb (當(dāng)前用戶為wirror800)

   sudo apt-get install gitweb

 

9.安裝apache2

  sudo apt-get install apache2

 

10.配置gitweb (當(dāng)前用戶為wirror800)
(1)默認(rèn)沒(méi)有 css 加載,把 gitweb 要用的靜態(tài)文件連接到 DocumentRoot 下:
   cd /var/ www/
   sudo ln -s / usr/ share/ gitweb/* .

   (注意后面的點(diǎn))

(2)修改配置:

   sudo vi /etc/ gitweb.conf

   將 $projectroot 改為gitosis-admin.git所在目錄: /home/git/repositories

 (3)修改 /home/git/repositories權(quán)限,默認(rèn)情況下,gitosis將 repositories權(quán)限設(shè)置為不可讀的

    sudo chmod 777 -R /home/git/repositories

 

11.編輯apache2配置文件,建立web站點(diǎn) (當(dāng)前用戶為wirror800,默認(rèn)情況下可以忽略此步驟)

(1) 編輯apache2配置文件

    ubuntu中默認(rèn)的web目錄是/var/www,默認(rèn)的cgi目錄是 /usr/lib/cgi-bin/,安裝完成gitweb后,gitweb的gitweb.cgi會(huì)自動(dòng)放置

到該目錄下。如果你的cgi路徑不是默認(rèn)的/usr/lib/cgi-bin/,需要將gitweb安裝在/usr/lib/cgi-bin中的gitweb.cgi復(fù)制到原來(lái)配置

的cgi-bin路徑,并修改apache的配置文件/etc/apache2/apache.conf:

    SetEnv  GITWEB_CONFIG   /etc/gitweb.conf
    gitweb.conf配置文件形如:(可自行修改,這里不做詳細(xì)介紹)
<Directory "/srv/www/cgi-bin/gitweb">          
      Options FollowSymlinks ExecCGI         
      Allow from all                         
      AllowOverride all                      
      Order allow,deny                       

      <Files gitweb.cgi>
           SetHandler cgi-script
      </Files>                   
      RewriteEngine on
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteRule ^.* /gitweb.cgi/$0 [L,PT]
</Directory>

(2)重新啟動(dòng)apache:sudo /etc/init.d/apache2 restart,訪問(wèn)http://localhost/cgi-bin/gitweb.cgi

 gitweb

 

(二)   Git 管理員(git bash下運(yùn)行)

1.安裝msysgit,

    下載地址:http://code.google.com/p/msysgit/downloads/list

     缺省安裝。

 

2.生成服務(wù)器管理員公鑰。

    執(zhí)行命令ssh-keygen -t rsa,操作時(shí)刻參照第一部分第7步,用于提供給服務(wù)器端初始化gitosis。

 

3.從服務(wù)器 克隆gitosis-admin.git

    首先選定目錄,如G盤:cd /g/

    然后,新建一個(gè)目錄mkdir gitproject

    git clone git@YOUR_SERVER:gitosis-admin.git

    ( YOUR_SERVER可以是你的服務(wù)器名稱或者ip,我這里的ubuntu的ip為192.168.1.102 )


4. 編輯 gitosis.conf

     cd gitosis-admin

     你將看到以下文件gitosis.conf和keydir/,gitosis.conf是gitosis的配置文件,用于配置用戶和權(quán)限,keydir/是所有組成員的

公鑰。

     vi gitosis.conf, 打開gitosis.conf文件,內(nèi)容為:

     [group gitosis-admin]
     writable = gitosis-admin
     members =  Administrator@LILIN

     這個(gè)是管理組的權(quán)限,members中的用戶名就是剛才上傳的公鑰里面的用戶名。

    

     把內(nèi)容修改為:

     [gitosis]
     gitweb = yes

     [group gitosis-admin]
     writable = gitosis-admin
     members = Administrator@LILIN wirror800@192.168.1.102

     [group apps ]
     writable = apps
     members = Administrator@LILIN wirror800@192.168.1.102

     其中 gitweb = yes表示啟用對(duì)gitweb的支持。 這里定義了一個(gè)叫apps 的組,授予Administrator@LILIN和wirror800@192.168.1.102

兩個(gè)用戶寫“apps ”這個(gè)repo的權(quán)限

    

     然后push到服務(wù)端后,服務(wù)器端就立刻生效。

     git commit -a -m “created a new repository”

     git push

     這樣就 更新了服務(wù)端的權(quán)限。

 

5.創(chuàng)建一個(gè)app的repo

     mkdir apps

     cd apps

     git init


6.創(chuàng)建、編輯 .gitignore , 用于忽略某些不需要進(jìn)行代碼管理的內(nèi)容,如rails的應(yīng)用可能如下:

    .DS_Store
      log/*.log
      tmp/**/*
      config/database.yml
      db/*.sqlite3

  

7.編輯 .git/description 內(nèi)容, 加上apps 的說(shuō)明

8. 提交代碼

    git remote add origin git@YOUR_SERVER:apps.git

     git add .

     git commit -am "imitial import"

    git push origin master:refs/heads/master


9.增加成員的公鑰到系統(tǒng)中

    cd ../gitosis-admin

    cp member_1.pub keydir/

    cp member_2.pub keydir/ git

    add keydir/member_1.pub keydir/member_2.pub

 

    修改gitosis.conf,并提交

    [group apps]
    - members = wirror800
    + members = wirror800 member_1 member_2
    writable = apps

 

    git commit -a -m "Granted new members commit rights to apps"
    git push

 

10. 其它成員獲取apps的代碼

    git clone git@YOUR_SERVER:apps.git

 

  在windows下安裝git服務(wù)器也是可以的,我們開始嘗試使用Cygwin來(lái)操作,但在使用gitweb的時(shí)候遇到困難。git畢竟誕生于

linux,還是建議大家使用linux來(lái)搭建git服務(wù)器吧。Mr. Zhang也提供了一個(gè)可以在windows下安裝git服務(wù)器的方法,鏈接地址奉獻(xiàn)

給大家:http://www./git/setting-up-a-msysgit-server-with-copssh-on-windows/ 。再次感謝CTO Mr. Zhang 這幾天

執(zhí)著的奉獻(xiàn)精神,讓我受益匪淺。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多