linux下安裝svn

前言

SVN服務器有2種運行方式:獨立服務器和藉助apache。2種方式各有利弊,獨立SVN服務器不結合Apache安裝使用,連接獨立SVN服務器也不用HTTP協議。這是比較快捷的SVN服務器配置方法。本次安裝時使用的是獨立用品方式。

SVN存儲版本數據也有2種方式:BDB和FSFS。因爲BDB方式在服務器中斷時,有可能鎖住數據所以還是FSFS方式更安全一點,我安裝時也使用的是FSFS方式。

一 下載工具

1. subversion-1.6.17.tar.gz

2. subversion-deps-1.6.17.tar.gz

這兩個包可以直接到CSDN去下載,版本要一樣,都是必須下載的,否則單獨下載第一個包編譯時就會提示缺少模塊。這兩個包下載解壓後會解壓到同一個目錄下,不需要特別指定。

 

二 解壓安裝

1. 解壓兩個包:

在此之前,我已經創建了一個用戶svnadmin專門用來安裝管理svn的,就解壓在/home/svnadmin/目錄下

tar -xzvf  subversion-1.6.17.tar.gz

tar -xzvf  subversion-deps-1.6.17.tar.gz

2. 編譯安裝

./configure --prefix=/home/svnadmin/subversion  --without-berkeley-db

//prefix指定安裝的目錄,without-berkeley-db表明不使用berkeley數據庫

//在這一步有可能不成功,是因爲有一些依賴的軟件沒裝,具體見下面“遇到的問題”

make

make install

//也許要sudo,看情況

3. 查看是否安裝成功

/home/svnadmin/subversion/bin/svnserve --version

//如果出現SVN的版本則證明安裝成功

三 添加環境變量

可以在/etc/profile中添加,這是全局的。其實最好是專門添加一個svnadmin用戶,在~/.bashrc中添加即可:

exprot PATH=$PATH:/home/svnadmin/subversion/bin

四 建立倉庫

1. 創建目錄

mkdir  -p  /home/svnadmin/svndata/repos1

加上參數P,是如果沒有父目錄則自動創建

注意: /home/svnadmin/svndata在這裏將是所有倉庫的根目錄,repos1是其中的一個倉庫。

2. 創建倉庫

svnadmin create /svndata/repos1

這裏使用SVN將repos1建立爲倉庫。則在repos1文件夾裏會生成一系列對於repos1倉庫相應的配置文件

五 配置倉庫

1. 查看創建倉庫後的文件

進入/svndata/repos1/conf,會發現有幾個配置文件,如下圖

2. 修改svnserve.conf

vi svnserve.conf

打開這個配置文件,可以看到很多配置項已經註釋掉了,只需要按下面這幾項修改就可以了

[general]

anon-access = none

auth-access = write

password-db = passwd

authz-db=authz

3. 目錄控制文件authz (or叫權限控制文件)

vi authz

默認是沒有配置的,要參照下面示例來配置

[groups]

admin = svnadmin

[repos1:/]

@admin = rw

svnadmin = rw

上面的配置權限控制文件的配置格式如下:

[groups]

<用戶組名> = <用戶1>,<用戶2>, ……

[<版本庫>:/項目/目錄]

@<用戶組名> = <權限>

<用戶名> = <權限>

其中,方框號內部分可以有多種寫法:

/,表示根目錄及以下。根目錄是svnserve啓動時指定的,我們指定爲/home/svnadmin/svndata。這樣,/就是表示對全部版本庫設置權限。

repos1:/,表示對版本庫1設置權限

repos2:/occi,表示對版本庫2中的occi項目設置權限

repos2:/occi/aaa,,表示對版本庫2中的occi項目的aaa目錄設置權限

權限主體可以是用戶組、用戶或*,用戶組在前面加@,*表示全部用戶。權限可以是w、r、wr和空,空表示沒有任何權限。

4. 修改用戶密碼文件passwd

vi passwd

默認也是沒有配置任何用戶的,可按下面配置示例配置

[users]

svnadmin = 123456

用戶密碼的配置格式:

[users]

<用戶1> = <密碼1>

<用戶2> = <密碼2>

注意:這裏的配置文件,除了註釋外每行都必須頂行,否則又會報錯了。

五 啓動SVN

svnserve -d -r /home/svnadmin/svndata

-d表示在後臺運行,-r表示……

注意:這裏是/home/svnadmin/svndata,並非/home/svnadmin/svndata/repos1。這是SVN使所有倉庫根目錄都生效的命令,並非某個倉庫。這裏必須注意。

檢查是否啓動:


六 開啓SVN的端口,默認是3690

在測試的時候,在本機可以使用svn,但是到了其他主機(在同一個局域網)就不行了,

錯誤信息提示:svn: 無法連接主機“192.168.6.74”: 沒有到主機的路由

這就是因爲防火牆的問題,要保證服務器和客戶端都沒有屏蔽這個端口

七 基本測試

1. checkout

svn co svn://192.168.6.74/repos1

checkout的時候,會要求輸入用戶名密碼,只有配置了的用戶才能驗證通過

2. 更新

svn up

3. 提交

svn ci -m 'add file'

4. 查看信息

svn info

5. 增/刪

svn add file / svn del fiel

八 遇到的問題

剛開始我在虛擬機上的ubuntu上面安裝時,出現瞭如下的錯誤,附上解決方法。後來我在red hat服務器上面安裝的時候就不會出現如下錯誤,可以是服務器版的linux已經安裝了這些軟件。環境不同,可能還會出現其他的問題,沒有遇到而已。

1. OpenSSL

configure配置SVN時可能提示如下錯誤信息:

configure: error: We require OpenSSL; try --with-openssl

解決方法:

錯誤提示需要安裝openssl,所以我就安裝了一個openssl,安裝方法如下:

cd /usr/local

tar -zxvf openssl-1.0.0a.tar.gz

cd openssl-1.0.0a

./config

./config -t

make depend

make

make test

make instal

安裝之後會在/usr/local下生成一個ssl目錄,配置SVN時加上openssl路徑

./configure --prefix=/home/svnadmin/subversion --without-berkeley-db --with-openssl=/usr/local/ssl 

2. zlib

configure配置SVN時可能提示如下錯誤信息:

configure: error: subversion requires zlib

錯誤提示需要安裝zlib

下載zlb:http://zlib.net/

cd /usr/local

tar -xvzf zlib-1.2.5.tar.gz

cd zlib-1.2.5

./configure

make

make install

3. expat

 configure配置SVN時可能提示如下錯誤信息:

configure: error: no XML parser was found: expat or libxml 2.x required

錯誤提示需要安裝expat

下載expat :http://sourceforge.net/project/showfiles.php?group_id=10127

cd /usr/local

tar -xvzf expat2.tar.gz

cd expat2

./configure

make

make install

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章