centos安裝git服務端和svn服務端

  • git服務端

首先確保有ssh,centOS自帶opensshcss

1.查看ssh版本html

ssh -V

2.安裝gitgit

確保在root用戶下執行該命令shell

$su root
#yum install -y git

驗證是否安裝成功,輸出git version ....則成功vim

git --version

3. 添加git的管理帳戶,添加該帳戶以後,在後面須要禁止該帳戶遠程登陸,不然會有安全隱患。安全

// 如下也爲root帳戶
#useradd git // 添加git帳戶
#passwd git // 爲git用戶設置密碼

#cd /home && ls -al // 查看/home下的目錄,添加用戶則默認會有一個git的目錄,而且用戶和組都爲git

4.使用過GitHub都知道ssh的公鑰,咱們搭建本身的私人git服務端,須要將客戶端的私鑰保存到服務端bash

#su git  // 切換git用戶
$cd /home/git
$mkdir .ssh
$cd /home/git/.ssh
$touch authorized_keys    // 保存公鑰的文件
$ chmod 700 /home/git/.ssh/     // 設置權限
$ chmod 600 /home/git/.ssh/authorized_keys

5.將客戶端的私鑰上傳服務器服務器

  在用戶主目錄下會有一個.ssh的隱藏文件夾,文件夾下有id_rsa和id_rsa.pub兩個文件。若是沒有請百度ssh

將id_rsa.pub上傳至服務器,並使用svn

$cat id_rsa.pub >> authorized_keys

寫入認證文件。

6.服務器建立測試git倉庫

// 切換到git帳號
$ su git // 進入git帳號的用戶主目錄。

$ cd /home/git  // 在用戶主目錄下建立 test.git倉庫的文件夾

$ mkdir test.git  && cd test.git  // 在test.git目錄下初始化git倉庫

$ git init --bare
Initialized empty Git repository in /home/git/test.git/

此時,客戶端就能夠clone或者remote add此倉庫了

6.客戶端測試鏈接git倉庫,在客戶端執行

$ mkdir demos && cd demos
$ git init
$ touch a.txt
$ echo 'xxxx.com' >> a.txt

$ git add .
$ git commit -m 'the first commit'

# 把當前倉庫跟遠程倉庫添映射
$ git remote add origin git@xxxx.com:test.git

# 把當前倉庫push到遠程倉庫。
$ git push -u origin master

7.禁用客戶端shell登陸

在/home/git下建立git-shell-commands,而且目錄爲git帳戶

$ su git
$ mkdir /home/git/git-shell-commands

修改/etc/passwd文件

$ vim /etc/passwd

# 能夠經過 vim的正則搜索快速定位到這行,  命名模式下  :/git:x

# 找到這句, 注意1000多是別的數字
git:x:1000:1000::/home/git:/bin/bash

# 改成:
git:x:1000:1000::/home/git:/bin/git-shell

# 最好不要直接改,能夠先複製一行,而後註釋掉一行,修改一行,保留原始的,這就是經驗!!!
# vim快捷鍵: 命令模式下:yy複製行, p 粘貼  0光標到行首 $到行尾 x刪除一個字符  i進入插入模式 
# 修改完後退出保存:  esc進入命令模式, 輸入::wq!   保存退出。

若是有其餘小夥伴要鏈接git服務器,僅須要把他的公鑰也添加到authorized_keys便可。

GIT服務端的安裝參照博客:http://cnblogs.com/fly_dragon/p/8718614.html


 

  • SVN服務端

  使用命令:

yum install subversion

便可完成svn服務端的安裝。

  檢查安裝:

svnserve --version

使用上面的命令檢查版本。

  配置版本庫:

默認項目在/var/svn下。我想放在/home/svn目錄下,須要編輯svn的配置文件

[root@localhost home]# vi /etc/sysconfig/svnserve

# OPTIONS is used to pass command-line arguments to svnserve.
#
# Specify the repository location in -r parameter:
OPTIONS="-r /home/svn"

   建立本身的版本庫(項目名:testProject):

svnadmin create /home/svn/testProject

建立以後,在/home/svn目錄下有testProject的文件夾

  配置版本庫的用戶名和密碼,在testProject下的conf目錄有這些配置文件

vi /home/svn/testProject/conf/passwd

該文件中是密碼的配置,格式是「用戶名」 = 「密碼」

[users]
# harry = harryssecret
# sally = sallyssecret
user1 = 123456
user2 = 123456

  配置版本庫的權限:

vi /home/svn/testProject/conf/authz

在文件末尾加上用戶的權限,通常用戶有根目錄的權限

[/]
user1 = rw
user2 = rw

  修改版本庫的配置:

[general]
anon-access = none                     #控制非鑑權用戶訪問版本庫的權限
auth-access = write                    #控制鑑權用戶訪問版本庫的權限
password-db = passwd                   #指定用戶名口令文件名
authz-db = authz                       #指定權限配置文件名

  啓動版本庫:

svnserve -d -r /home/svn/

  中止svn:

killall svnserve

  同步:  

  不能直接在版本庫中存文件,svn中將存的是壓縮事後的文件,不能直接將文件拷貝到服務端的版本庫文件目錄下。須要先同步空的版本庫到本地,而後將文件add到SVN,而後commit。

相關文章
相關標籤/搜索