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
# make
#make install
#tar -jxvf zlib-1.2.3.tar.bz2
#cd zlib-1.2.3
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
realm = repos2
指令前面不能有空格,否則用用戶端連接配接時報錯。
即除realm = repos2外,其他與版本庫1配置檔案完全相同。如果有更多的版本庫,依此類推。
配置允許通路的使用者:
#vi /opt/svn/conf/pwd.conf
為了簡化配置,2個版本庫共用1個使用者配置檔案。如有必要,也可以分開。
注意:對使用者配置檔案的修改立即生效,不必重新開機svn。
檔案格式如下:
[users]
=
其中,[users]是必須的。下面列出要通路svn的使用者,每個使用者一行。示例:
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和空,空表示沒有任何權限。
示例:
admin = laya,mike,john
###group define
[/]
@admin = rw
* = r
[repos1]
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
exit