linux下安裝subversion(不整合apache)

linux下安裝subversion
測試環境是rh6.3 httpd-2.2.9.tar.gz subversion-1.6.20.tar.gz subversion-deps-1.6.20.tar.gz
目錄:
一.安裝subversion
二.配置subversion
三. 驗證安裝

附:安裝過程當中遇到的問題

一. 安裝subversion
1.安裝subversion 所須要的組件
#yum install -y libxml openssl zlib
#tar -zxvf libxml2-2.7.3.tar.gz
#cd libxml2-2.7.3
#./configure
#make
#make install
#tar -zxvf openssl-0.9.8k.tar.gz
#cd openssl-0.9.8k
#./configure
# make
 #make install
#tar -jxvf zlib-1.2.3.tar.bz2
#cd zlib-1.2.3
#./configure
#make
#make install
 
2. 下載subversion-1.6.20.
編譯:
以root用戶登陸。
subversion-1.6.20.tar.gz
subversion-deps-1.6.20.tar.gz
#tar –jxvf subversion-1.6.20.tar.gz
#tar –jxvf subversion-deps-1.6.20.tar.gz
這兩個自動解壓成一個包 subversion-1.6.20.
subversion-deps包有四個目錄zlib apr apr-util neon這四個目錄都是依賴包,編譯subversion所必須的代碼.

#cd subversion-1.6.20.
3. 安裝
#./configure --prefix=/opt/svn --without-berkeley-db --with-zlib=/usr/share/doc/zlib-1.2.3/
個人zlib爲yum安裝,因此目錄是這個,若是你也用yum安裝,查找安裝位置可用rpm -qa|grep zlib,找到安裝包的名稱,rpm -ql 安裝包名來查找。
(注:以svnserve方式運行,不加apache編譯參數。以fsfs格式存儲版本庫,不編譯berkeley-db)
#make clean
#make && make install
若是報錯以下:  
configure: error: –with-zlib requires an argument. 
安裝zlib

4.測試:
#svnserve --version
若是顯示以下,安裝成功:
svnserve, version 1.6.20 (r1426281)
   compiled Feb  2 2013, 10:32:36

Copyright (C) 2000-2009 CollabNet.
Subversion is open source software, see http://subversion.apache.org/
This product includes software developed by CollabNet (http://www.Collab.Net/).

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

* fs_fs : Module for working with a plain file (FSFS) repository.
二. 配置subversion
創建版本庫目錄,可建多個:
#mkdir -p /opt/svndata/repos1  項目1
#mkdir -p /opt/svndata/repos2  項目2
創建版本庫
#svnadmin create /opt/svndata/repos1
#svnadmin create /opt/svndata/repos2
修改版本庫配置文件:
版本庫1:
#vi /opt/svndata/repos1/conf/svnserve.conf
內容修改成:
[general]
anon-access = none
auth-access = write
password-db = /opt/svn/conf/pwd.conf
authz-db = /opt/svn/conf/authz.conf
realm = repos1
版本庫2:
#vi /opt/svndata/repos2/conf/svnserve.conf
內容修改成:
[general]
anon-access = none
auth-access = write
password-db = /opt/svn/conf/pwd.conf
authz-db = /opt/svn/conf/authz.conf
realm = repos2
命令前面不能有空格,不然用客戶端鏈接時報錯。
即除realm = repos2外,其餘與版本庫1配置文件徹底相同。若是有更多的版本庫,依此類推。
配置容許訪問的用戶:
#vi /opt/svn/conf/pwd.conf
爲了簡化配置,2個版本庫共用1個用戶配置文件。若有必要,也能夠分開。
注意:對用戶配置文件的修改當即生效,沒必要重啓svn。
文件格式以下:
[users]
=
=
其中,[users]是必須的。下面列出要訪問svn的用戶,每一個用戶一行。示例:
[users]
laya = 123
test = 456
配置用戶訪問權限:
#vi /opt/svn/conf/authz.conf
爲了簡化配置,3個版本庫共用1個權限配置文件/opt/svn/conf/pwd.conf。若有必要,也能夠分開。文件中定義用戶組和版本庫目錄權限。
注意:
* 權限配置文件中出現的用戶名必須已在用戶配置文件中定義。
* 對權限配置文件的修改當即生效,沒必要重啓svn。

用戶組格式:
[groups]
= ,
其中,1個用戶組能夠包含1個或多個用戶,用戶間以逗號分隔。
版本庫目錄格式:
[:/項目/目錄]
@ =
=
其中,方框號內部分能夠有多種寫法:
/,表示根目錄及如下。根目錄是svnserve啓動時指定的,咱們指定爲/opt/svndata。這樣,/就是表示對所有版本庫設置權限。
repos1:/,表示對版本庫1設置權限
repos2:/abc, ,表示對版本庫2中的abc項目設置權限
repos2:/abc/aaa, ,表示對版本庫2中的abc項目的aaa目錄設置權限
權限主體能夠是用戶組、用戶或*,用戶組在前面加@,*表示所有用戶。權限能夠是w、r、wr和空,空表示沒有任何權限。
示例:
[groups]
admin = laya,mike,john
###group define
[/]
@admin = rw
* = r
[repos1]
@admin = rw
test = rw
[repos2]
test =
刪除無用文件:
rm /opt/svndata/repos1/conf/authz
rm /opt/svndata/repos1/conf/passwd
rm /opt/svndata/repos2/conf/authz
rm /opt/svndata/repos2/conf/passwd
三. 驗證安裝
創建啓動svn的用戶:
useradd svn
passwd svn
根據提示爲用戶svn設置密碼:123456
容許用戶svn訪問版本庫:
chown -R svn:svn /opt/svndata

啓動svn:
svnserve -d -r /opt/svndata
svnserve -d --listen-port 3691 -r /opt/svndata」
其中:
-d表示以daemon方式(後臺運行)運行
--listen-port 3691表示使用3691端口,能夠換成你須要的端口。但注意,使用1024如下的端口須要root權限
-r /opt/svndata指定根目錄是/opt/svndata

檢查:
ps -ef|grep svnserve
若是顯示以下,即爲啓動成功:
svn       3030     1  0 15:22 ?        00:00:00 svnserve -d --listen-port 3691 -r /opt/svndata/
--------------------------------------------------------------------------------------------
幾點須要注意的問題:
1.服務器已經顯示啓動了svn,可是客戶端訪問不了
問題多是linux的防火牆致使,查看iptables的配置,開放svn的服務器端口。
2.若指定了端口號,訪問時要更改端口號才能訪問。svn://192.168.1.37:3691/test


備份svn的腳本
#!/bin/sh
# subversion data backup script

DATE=`date +%Y%m%d`
BakDir=/opt/backup
#SvnDir=/opt/svn
cd /opt
tar czvf $BakDir/25svnadmin$DATE.tar.gz svnadmin

########## End ############
刪除svn的備份
#!/bin/bash

#刪除svn的備份
#/opt/backup

for file in /opt/backup
do
#echo $file
find $file -mtime +90 -exec rm -rf {}  \;
done
exitlinux

相關文章
相關標籤/搜索