天天看點

ubuntu下安裝和配置SVN的詳細方法介紹

ubuntu安裝和配置svn

第一步:安裝apache2 libapache2-svn subversion

複制代碼

代碼如下:

sudo apt-get install apache2

sudo apt-get install subversion

sudo apt-get install libapache2-svn

安裝完後按照提示

run '/etc/init.d/apache2 restart' to activate new configuration!

重新開機apache2

第二步:建立svn庫和項目

sudo mkdir /home/svn //建立svn庫

sudo svnadmin create /home/svn/project //建立項目

第三步:建立組并添加成員

sudo addgroup subversion //建立一個叫subversion的組為擁有倉庫所在的目錄

系統提示:正在添加組"subversion" (gid 1001)...

完成。

sudo usermod -g subversion -a www-data //将自己和“www-data”(apache 使用者)加入組成員中

檢視:more /etc/group | grep subversion

系統提示:subversion:x:1001:www-data

第四步:修改項目權限

sudo chown -r root:subversion /home/svn/project

sudo chmod -r g+rws /home/svn/project //賦予組成員對所有新加入檔案倉庫的檔案擁有相應的權限

檢視txn-current-lock檔案的權限和使用者以及組資訊

ls -l /home/svn/myproject/db/txn-current-lock

系統提示:-rw-rwsr-- 1 root subversion 0 2011-01-25 17:47 /home/svn/project/db/txn-current-lock

第五步:通過指令通路庫

sudo svn co file://lodalhost/home/svn/project //第一種方法,知道主機名時用

sudo svn co file:///home/svn/project //第二種方法,當不确定主機命時用,這用的是file:///,三個斜杠

系統提示:取出版本 0。

己可以取出版本,說明svn伺服器己正常運作,下面試從webdav通路

第六步:配置apache2

修改 /etc/apache2/mods-available/dav_svn.conf

sudo vim /etc/apache2/mods-available/dav_svn.conf

加入以下代碼:

================================

<location /svn/project>

dav svn

svnpath /home/svn/myproject

authtype basic

authname "project subversion repository"

authuserfile /etc/subversion/passwd

<limitexcept get propfind options report>

require valid-user

</limitexcept>

</location>

如果需要使用者每次登入時都進行使用者密碼驗證,就将<limitexcept get propfind options report>與</limitexcept>兩行注釋掉

加入代碼後重新開機apache2

第七步:建立/etc/subversion/passwd檔案,這個檔案裡包含了使用者授權的詳細資訊

添加使用者

sudo htpasswd -c /etc/subversion/passwd [user_name] //第一次添加使用者使用參數“-c”以後再添加就不用了

通路檔案倉庫

svn co http://hostname/svn/project project --username [username]

ok!這次通過web頁面通路到版本庫了,下面試一下導入版本庫

導入版本庫

把/var/www/下的内容導入版本号中:

sudo svn import -m "第一次導入" /var/www http://192.168.0.5/svn/project

========================================

系統提示:

認證領域: <http://192.168.0.5:80> myproject subversion repository

“root”的密碼:

使用者名: test

“test”的密碼:

增加 /var/www/index.html

-----------------------------------------------------------------------

注意! 你的密碼,對于認證域:

<http://192.168.0.5:80> myproject subversion repository

隻能明文儲存在磁盤上! 如果可能的話,請考慮配置你的系統,讓 subversion

可以儲存加密後的密碼。請參閱文檔以獲得詳細資訊。

你可以通過在“/home/icedot/.subversion/servers”中設定選項“store-plaintext-passwords”為“yes”或“no”,

來避免再次出現此警告。

儲存未加密的密碼(yes/no)?

請輸入 'yes' 或 'no': yes

送出後的版本為 1。

==========================================

最後在windows下通過tortoisesvn及web頁面通路,成功。

試驗過程中曾經出現過的錯誤

檢出版本庫報錯:

sudo svn co http://192.168.0.5/home/svn/project

svn: 方法 options 失敗于 “http://192.168.0.5/home/svn/myproject”: 200 ok (http://192.168.0.5)

這個報錯在網上查了很久,沒什麼可借鑒的資料,模糊的覺的可能是說使用者名和權限不對,以待後面确認

sudo svn co file://localhost/home/svn/project

svn: 無法為url打開ra_local會話

svn: 無法打開版本庫“file://localhost/home/svn/projcet”

1. 安裝svn

apt-get install subversion

2. 建立svn倉庫

1). 建立svn目錄:mkdir /home/.svn(使用隐藏目錄)

2). cd /home/.svn

3). mkdir astar

4). 建立倉庫astar:svnadmin create /home/.svn/astar,執行完畢後astar目錄有svnadmin建立的目錄和檔案

5). mkdir test

6). 建立倉庫test:svnadmin create /home/.svn/test,執行完畢後test目錄有svnadmin建立的目錄和檔案

3. 配置和管理svn

1). 每個倉庫的配置檔案在$repos/conf/下,vi svnserve.conf,配置項在[general]下:

anon-access:匿名使用者的權限,可以為read,write和none,預設值read。不允許匿名使用者通路:anon-access = none

auth-access:認證使用者的權限,可以為read,write和none,預設值write。

password-db:密碼資料庫的路徑,去掉前邊的#

authz-db:認證規則庫的路徑,去掉前邊的#。

注意:這些配置項的行都要頂格,否則會報錯。修改配置後需要重新開機svn才能生效。

2). 配置passwd檔案

這是每個使用者的密碼檔案,比較簡單,就是“使用者名=密碼”,采用的是明碼。如allen=111111

3). 配置authz檔案

1. [groups] section:為了便于管理,可以将一些使用者放到一個組裡邊,比如:owner=allen,ellen

2. groups下邊的sections表示對一個目錄的認證規則,比如對根目錄的認證規則的section為[/]。設定單使用者的認證規則時一個使用者一行,如:

[/]

allen=rw#allen對根目錄的權限為rw

ellen=r #ellen對根目錄的權限為r

如果使用group,需要在group名字前加@,如

@owner=rw#group owner中的使用者均為rw,等價于上邊的兩句話

啟動時如果從/home/.svn/astar啟動,/就是astar目錄,用如上方式以astar目錄為根設定權限。

如果從/home/.svn/啟動,每個倉庫根還是自己的起始目錄。可以采用如上方式設定astar的權限,也可以采用如下方式:

[astar:/]

@owner=rw

設定test的權限如下:

[test:/]

@harry_and_sally = rw

簡言之,每個倉庫的根目錄(/)就是自己的起始目錄;[repos:/]這種方式隻适用于多倉庫的情況;[/]适合于單倉庫和單倉庫的方式。

3. 不能跨越倉庫設定權限。

4. 啟動和停止svn

1). 啟動:

1. 從astar目錄啟動,svnserve -d -r /home/.svn/astar,根目錄(/)是astar,authz中規則的配置使用section[/]。通路方式為:

svn://192.168.0.87/

2. 從.svn目錄啟動,svnserve -d -r /home/.svn,根目錄(/)是.svn,authz中對astar的配置使用section[astar:/] ,對test的配置使用section[test:/]。通路方式為:

svn://192.18.0.87/astar

svn://192.18.0.87/test

如果需要svn自啟動,把指令加入/etc/rc.local中

2). 檢查svn伺服器是否已經啟動(svn預設使用3690端口):netstat -an | grep 3690

3). 停止:killall svnserve

5. svn client

推薦使用tortoisesvn, http://tortoisesvn.tigris.org/

eclipse插件,http://subclipse.tigris.org/