使用subversion搭建SVN需要用到的软件包有subversion,apr,apr-util,sqlite,zlib,因为在编译安装subversion时需要指明apr、apr-util、sqlite和zlib的安装路径,所以建议用源代码安装apr、apr-util、sqlite、zlib并在编译时指定安装位置。
下载subversion,apr,apr-util,sqlite,zlib软件包可以使用“wget <网址>”方式;也可以在本地电脑下载好软件包,使用“rz”命令(服务器需要安装lrzsz)将压缩包上传至服务器。
一、 安装apr
tar xf 解压apr压缩包,cd进入解压后的文件夹
./configure --prefix=/opt/apr 配置并设置安装路径
make && make install 编译安装
二、 安装apr-util
tar xf 解压apr-util压缩包,cd进入解压后的文件夹
./configure --prefix=/opt /apr-util --with-apr=/opt/ apr 设置安装路径、指定使用apr的位置
make && make install 编译安装
三、 安装sqlite
tar xf 解压sqlite压缩包,cd 进入解压后的文件夹
./configure --prefix=/opt/sqlite 设置安装路径
make && make install 编译安装
四、 安装zlib
tar xf 解压zlib压缩包,cd 进入解压后的文件夹
./configure --prefix=/opt/zlib 设置安装路径
make && make install 编译安装
五、 安装svn
tar xf 解压subversion压缩包,cd 进入解压后的文件夹
./configure --prefix=/opt/svn --with-apr=/opt/apr --with-apr-util=/opt/apr-util --with-sqlite=/opt/sqlite --with-zlib=/opt/zlib
make && make install 编译安装
六、 设置环境变量
vim /etc/profile
在最后添加以下内容:
export PATH=/opt/svn/bin:$PATH
立即生效source /etc/profile
七、 测试是否安装成功
svnserve --version
八、 创建仓库
mkdir –p /var/svnroot
cd /var/svnroot
svnadmin create test 创建一个名为test的仓库
cd test/conf
九、 配置svnserve.conf
vim svnserve.conf
去掉注释符#
anon-access = none 未验证用户无任何权限
auth-access = write 已验证用户有写权限
password-db = passwd 指定用户名密码文件
authz-db = authz 指定权限配置文件
十、 设置访问权限
- 添加用户并设置用户密码
vim passwd
添加(用户名=密码)
user = password
- 设置权限
[groups]
用户组名 = 用户1,用户2
[版本库:/目录]
@用户组名 = 权限rw
用户名 = 权限rw
十一、 运行SVN,默认使用3690端口
svnserve –d –r /var/svnroot/test
也可以指定端口号 svnserve –d –r /var/svnroot/test --listen-port 65432
十二、 查看svn是否运行
ps –ef |grep svnserve
十三、 配置实例
有四个用户,分别为boss、d、t1、t2,密码均为123,boss隶属于super组,d隶属于developer组,t1、t2隶属于tester组。Super组可对所有文件进行读写操作;developer组可对“develop”文件夹进行读写操作,对“test”文件夹进行读操作;tester组可对“test”文件夹进行读写操作,对“develop”文件夹进行读操作
1) passwd文件
[users]
boss = 123 创建四个名为boss、d、t1、t2用户,密码设置为123
d = 123
t1 = 123
t2 = 123
2) authz文件
[groups]
super = boss 创建三个名为super、developer、tester组,boss隶属于super组
developer = d d隶属于developer组,t1和t2隶属于tester组
tester = t1,t2
[/]
@super = rw
* = r
[/develop]
@super = rw
@developer = rw
@tester = r
[/test]
@super = rw
@developer = r
@tester = rw
十四、 访问svn
可在客户端上安装TortoiseSVN软件访问,访问网址为“svn://ip地址”或“svn://ip地址:端口号”
十五、 备份
- 完全备份
svnadmin dump /var/svnroot/test >/home/full.svn.bak |
md5sum >/home/full.svn.bak.md5
将test仓库完全备份到/home中,命名为full.svn.bak,并生成名为full.svn.bak.md5的校验文件
- 增量备份并生成md5校验文件
svnadmin dump /var/svnroot/test –r 2 --incremental >/home/svn.bak.2 |
md5sum >/home/svn.bak.2.md5
以增量备份将版本库2备份到/home路径下,命名为svn.bak.2,并生成名为svn.bak.2.md5的校验文件
svnlook youngest /var/svnroot/test 查看test仓库最新的版本号
十六、 还原
svnadmin load /var/svnroot/test </home/full.svn.bak