SVN其实就是Subversion,分为服务器端和客户端。本次主要是服务器端的安装过程。
所需源码包: sqlite-autoconf-3070800 subversion-1.8.0.tar.gz
如果用yum安装过svn,先检查是否安装了低版本的SVN
rpm -qa | grep subversion
卸载旧版本SVN
yum remove subversion
下载、编译、安装的步骤
1.首先安装httpd服务。用yum或者源码包进行安装皆可
2.
编译安装sqlite
tar -zxf sqlite-autoconf-3080800.tar.gz
cd sqlite-autoconf-3080800
./configure
make && make install
3.编译安装subversion-1.8.0
tar -zxf subversion-1.8.0.tar.gz
cd subversion-1.8.0
./configure --with-apr=/usr/local/apache --with-apr-util=/usr/local/apache --with-sqlite=/usr/local
make && make install
检查安装是否成功
svnserve --version
返回值:
svnserve, version 1.8.0 (r1490375)
compiled Jan 20 2015, 09:24:13 on x86_64-unknown-linux-gnu
Copyright (C) 2013 The Apache Software Foundation.
This software consists of contributions made by many people;
see the NOTICE file for more information.
Subversion is open source software, see http://subversion.apache.org/
The following repository back-end (FS) modules are available:
* fs_fs : Module for working with a plain file (FSFS) repository.
代码库创建
mkdir -p /opt/svn/repositories
svnadmin create /opt/svn/repositories
执行上面的命令后,自动建立repositories库,查看/opt/svn/repositories 文件夹发现包含了conf,db,format,hooks,locks, README.txt等文件,说明一个SVN库建立完成。
配置代码库
进入上面生成的文件夹conf下,进行配置
cd /opt/svn/repositories/conf
用户密码passwd配置
vim passwd
passwd文件的内容如下:
### This file is an example password file for svnserve.
### Its format is similar to that of svnserve.conf. As shown in the
### example below it contains one section labelled [users].
### The name and password for each user follow, one account per line.
[users]
# harry = harryssecret
# sally = sallyssecret
centrald = centrald
权限控制authz配置
vim authz
目的是设置哪些用户可以访问哪些目录,authz文件的内容如下:
### This file is an example authorization file for svnserve.
### Its format is identical to that of mod_authz_svn authorization
### files.
### As shown below each section defines authorizations for the path and
### (optional) repository specified by the section name.
### The authorizations follow. An authorization line can refer to:
### - a single user,
### - a group of users defined in a special [groups] section,
### - an alias defined in a special [aliases] section,
### - all authenticated users, using the '$authenticated' token,
### - only anonymous users, using the '$anonymous' token,
### - anyone, using the '*' wildcard.
###
### A match can be inverted by prefixing the rule with '~'. Rules can
### grant read ('r') access, read-write ('rw') access, or no access
### ('').
[aliases]
# joe = /C=XZ/ST=Dessert/L=Snake City/O=Snake Oil, Ltd./OU=Research Institute/CN=Joe Average
[groups]
# harry_and_sally = harry,sally
# harry_sally_and_joe = harry,sally,&joe
# [/foo/bar]
# harry = rw
# &joe = r
# * =
# [repository:/baz/fuz]
# @harry_and_sally = rw
# * = r
[/]
* = rw #在paaswd中记录的所有用户可读写
设置[/]代表根目录下所有的资源
服务svnserve.conf配置
vim svnserve.conf
svnserve.conf文件的内容如下:
[general]
#匿名访问的权限,可以是read,write,none,默认为read
anon-access=none
#使授权用户有写权限
auth-access=write
#密码数据库的路径
password-db=passwd
#访问控制文件
authz-db=authz
#认证命名空间,subversion会在认证提示里显示,并且作为凭证缓存的关键字
realm=/opt/svn/repositories
启动svn服务
svnserve -d -r /opt/svn/repositories
查看SVN监听的端口
netstat -ln |grep 3690
tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN 0 105363 17584/svnserve
停止启动SVN
killall svnserve #停止
svnserve -d -r /opt/svn/repositories #启动
svn的访问;
svn://192.168.1.11/