天天看點

svn配置過程

一、首先,介紹一下SVN 。更多資料(百度百科SVN)

  subversion(以下簡稱svn)是近年來崛起的版本管理工具,是cvs的接班人。

  svn伺服器有2種運作方式:獨立伺服器和借助apache。2種方式各有利弊。

  svn存儲版本資料也有2種方式:BDB和FSFS。因為BDB方式在伺服器中斷時,有可能鎖住資料,是以還是FSFS方式更安全一點。

       二、配置過程

  

  我第一天配置借助apach方式,完成後可以通過浏覽器http協定通路,可是在Myeclipse中總是連接配接不到svnserver。無奈之下,第二天重新以svnserve方式配置,最終成功,哈哈,下面主要說說svnserve方式的配置。

     1. svn伺服器安裝

  以root使用者登入,安裝包擷取(/root路徑下):

    subversion 1.6.2 .tar.gz    subversion-deps-1.6.2.tar.gz。

  指令行運作(本文以#開頭行都為指令行執行):

  #tar xfvz subversion-1.6.2 .tar.gz    

       #tar xfvz subversion-deps-11.6.2 .tar.gz   

解壓後他們都在subversion-1.6.2 這個檔案夾下

       #cd subversion-1.6.2

       #./configure

       #make clean

       #make

       #make install

預設安裝在/usr/local 你也可以用 ./configure –prefix = /xxx/xxx 來指定安裝路徑。

運作make clean成功,運作make 出現錯誤:

krb5.h: No such file or directory (PC Linux)

/usr/include/openssl/kssl.h:169: syntax error before "enctype"

In file included from spamc/utils.h:28,

from spamc/libspamc.c:20:

/usr/include/openssl/ssl.h:909: syntax error before "KSSL_CTX"

/usr/include/openssl/ssl.h:931: syntax error before '}' token

In file included from /usr/include/openssl/ssl.h:179,

from spamc/utils.h:28,

from spamc/utils.c:40:

/usr/include/openssl/kssl.h:72:18: krb5.h: No such file or directory

In file included from /usr/include/openssl/ssl.h:179,

from spamc/utils.h:28,

from spamc/utils.c:40:

/usr/include/openssl/kssl.h:134: syntax error before "krb5_enctype"

/usr/include/openssl/kssl.h:136: syntax error before '*' token

/usr/include/openssl/kssl.h:137: syntax error before '}' token

/usr/include/openssl/kssl.h:149: syntax error before "kssl_ctx_setstring"

/usr/include/openssl/kssl.h:149: syntax error before '*' token

/usr/include/openssl/kssl.h:150: syntax error before '*' token

  編譯問題

     這是因為 Red Hat Linux 的 krb5-devel 套件把 kerberos 的 include file 放到了 /usr/kerberos/include 裡面,而不是一般位置的 /usr/include 這個目錄。而 openssl 支援 kerberos,是以在 compile 使用到 openssl 的程式就很容易發生找不到 kerberos 的 include file 的錯誤。

      解決方法

     解決的辦法相當簡單,首先當然要确定 krb5-devel 以及 krb5-libs 等套件确實有安裝在系統上,而不是根本沒安裝;接下來,建立以下的 symbolic links:

       # ln -s /usr/kerberos/include/com_err.h /usr/include/

       # ln -s /usr/kerberos/include/profile.h /usr/include/

      # ln -s /usr/kerberos/include/krb5.h /usr/include/

之後,make,make install運作順利,安裝成功。

  測試一下:

  #svnserve –version

  如果顯示如下,安裝成功:

  svnserve, version 1.6.2

    ……(省略多行)

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

  2.建立SVN版本庫

//建立庫檔案所在的目錄

# mkdir /home/svnroot/repository

//建立倉庫"test",指定資料存儲為 FSFS,如果要指定為 Berkeley DB,則将 fsfs 替換為 bdb

# /usr/local/subversion/bin/svnadmin create --fs-type fsfs /home/svnroot/repository/test

       3.配置版本庫

  1)修改版本庫配置檔案(可以使用vi 或者gedit等修改):

  /home/svnroot/repository/test/conf/svnserve.conf

内容修改為:

[general]

anon-access = none

auth-access = write

password-db =passwd

authz-db = authz

realm = repos

其他與版本庫1配置檔案完全相同。如果有更多的版本庫,依此類推。

  2)配置允許通路的使用者(可以使用vi 或者gedit等修改):

  /home/svnroot/repository/test/conf/passwd

注意:對使用者配置檔案的修改立即生效,不必重新開機svn。

檔案格式如下:

[users]

<使用者1> = <密碼1>

<使用者2> = <密碼2>

  其中,[users]是必須的。下面列出要通路svn的使用者,每個使用者一行。

示例:

[users]

user1 = test

user2 = hello

  3)配置使用者通路權限:

  /home/svnroot/repository/test/conf/authz.conf

注意:

* 權限配置檔案中出現的使用者名必須已在使用者配置檔案中定義。

* 對權限配置檔案的修改立即生效,不必重新開機svn。

使用者組格式:

[groups]

<使用者組名> = <使用者1>,<使用者2>

其中,1個使用者組可以包含1個或多個使用者,使用者間以逗号分隔。

版本庫目錄格式:

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

@<使用者組名> = <權限>

<使用者名> = <權限>

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

示例:

[groups]

developer = user1,user2

[/]

@ developer = rw

[test:/]

user1 = rw

  4. 啟動svn

  #svnserve -d --listen-port 8080 -r /home/svnroot/repository

  其中:

  -d表示以daemon方式(背景運作)運作

  --listen-port 8080表示使用8080端口,可以換成你需要的端口。注意,使用1024以下的端口需要root權限

  -r /home/svnroot/repository指定根目錄是/home/svnroot/repository

  檢查:

  #ps –ef

  顯示所有在執行的程序,每個程序一行,如果有一行如下,即為啟動成功:

  root   6941  1 0 15:07 ? 00:00:00   svnserve -d --listen-port 8080 -r /home/svnroot/repository

       三、MyEclipse中通路

       建立-- 資源庫位置, URL填"svn://219.XX.XX.XX:8080/test"

       之後彈出使用者名,和密碼(填上面内容/home/svnroot/repository/test/conf/passwd 裡的使用者和密碼)

       一切OK!!!