1. 程式人生 > >CentOS 6.5系統上安裝SVN伺服器

CentOS 6.5系統上安裝SVN伺服器

有效地管理原始碼的方式是使用工具去幫助我們管理 , SVN(Subversion)就是目前主流的原始碼管理工具 , 也稱為版本控制工具。本文主要介紹CentOS6.5上安裝SVN伺服器,配置SVN伺服器的資料倉庫,SVN服務的啟動檢視和停止,SVN服務的開機自啟動,安裝SVN客戶端等內容。

一 安裝SVN

1 檢查系統是否自帶SVN

svnserve –version

如果沒有安裝,系統會提示svnserve是個無效的命令。

2 安裝SVN

yum –y install subversion

3 檢查安裝是否成功

svnserve –version

返回值:

svnserve, version 1.6.11 (r934486)

   compiled Aug 17 2015, 08:37:43

Copyright (C) 2000-2009 CollabNet.

Subversion is open source software, see http://subversion.tigris.org/

This product includes software developed by CollabNet (http://www.Collab.Net/).

The following repository back-end (FS) modules are available:

* fs_base : Module for working with a Berkeley DB repository.

* fs_fs : Module for working with a plain file (FSFS) repository.

Cyrus SASL authentication is available.

二 建立SVN資料倉庫

1 建立資料倉庫

首先建立一個資料夾

mkdir -p /opt/svn/repositories

將建立的資料夾設定為資料倉庫

svnadmin create /opt/svn/repositories

執行上面的命令後,自動建立repositories庫,檢視/opt/svn/repositories 資料夾發現包含了conf,db,format,hooks,locks, README.txt等檔案,說明一個SVN庫建立完成。

2 配置資料倉庫

進入上面生成的資料夾conf下,進行配置

cd /opt/svn/repositories/conf

配置使用者名稱和密碼passwd

vi passwd

passwd檔案的內容如下:

### This file is an example password file for svnserve.

### Its format is similar to that of svnserve.conf. As shown in the

### example below it contains one section labelled [users].

### The name and password for each user follow, one account per line.

[users]

# harry = harryssecret

# sally = sallyssecret

test = 123456 ##新增使用者的使用者名稱和密碼

配置許可權控制authz

vi authz

目的是設定哪些使用者可以訪問哪些目錄,authz檔案的內容如下:

### This file is an example authorization file for svnserve.

### Its format is identical to that of mod_authz_svn authorization

### files.

### As shown below each section defines authorizations for the path and

### (optional) repository specified by the section name.

### The authorizations follow. An authorization line can refer to:

###  - a single user,

###  - a group of users defined in a special [groups] section,

###  - an alias defined in a special [aliases] section,

###  - all authenticated users, using the '$authenticated' token,

###  - only anonymous users, using the '$anonymous' token,

###  - anyone, using the '*' wildcard.

###

### A match can be inverted by prefixing the rule with '~'. Rules can

### grant read ('r') access, read-write ('rw') access, or no access

### ('').

[aliases]

# joe = /C=XZ/ST=Dessert/L=Snake City/O=Snake Oil, Ltd./OU=Research Institute/CN=Joe Average

[groups]

# harry_and_sally = harry,sally

# harry_sally_and_joe = harry,sally,&joe

# [/foo/bar]

# harry = rw

# &joe = r

# * =

# [repository:/baz/fuz]

# @harry_and_sally = rw

# * = r

[/]

test = rw

設定[/]代表根目錄下所有的資源

配置服務svnserve.conf

vi svnserve.conf

svnserve.conf檔案的內容如下:

[general]

#匿名訪問的許可權,可以是read,write,none,預設為read

anon-access=none

#使授權使用者有寫許可權

auth-access=write

#密碼資料庫的路徑

password-db=passwd

#訪問控制檔案

authz-db=authz

#認證名稱空間,subversion會在認證提示裡顯示,並且作為憑證快取的關鍵字

realm=/opt/svn/repositories

三 SVN服務的啟動、檢視及停止

1 啟動svn服務

svnserve -d -r /opt/svn/repositories

2 檢視SVN監聽的埠

netstat -anp |grep svn

返回:

tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN 2085/svnserve

3 停止啟動SVN

killall svnserve #停止

四 設定SVN的開機自啟動

1 建立svn.sh檔案

在/root資料夾下,建立svn.sh檔案

cd /root

vi svn.sh

編輯svn.sh檔案,加入以下內容

#!/bin/bash

svnserve –d –r /opt/svn/repositories

儲存退出

2.新增可執行許可權

命令列執行chmod ug+x /root/svn.sh

3.新增自動執行

開啟(vi或gedit)/etc /rc.local,在最後新增一行內容如下:/root/svn.sh儲存退出。

4.檢查

重啟伺服器,使用ps-ef看看svn程序是否啟動了。以後開機就自動啟動svn了。

五 安裝SVN客戶端

以業界流行的TortoiseSVN為例,下載地址:

客戶端連線地址:svn://公網或內網的IP地址(如192.168.0.141):3690

使用者名稱/密碼: test/123456 ##要和之前設定的使用者名稱和密碼匹配。