为了方便管理自己的一些学习资料、总结等,在CentOS6.5上安装SVN,记录过程如下:
1.1 安装方式 独立服务器 fsfs
SVN服务器有2种运行方式:独立安装、SVN+Apache。独立安装访问方式:ftp://+路径 ,另外一种可以使用http://+路径访问
SVN存储版本数据也有2种方式:BDB、FSFS。因为BDB方式在服务器中断时,有可能锁住数据所以还是FSFS方式更安全一点,本次安装为FSFS方式。
1.2 安装简述
1. 下载安装包
subversion-1.6.17.tar.gz subversion-deps-1.6.17.tar.gz expat-2.1.0.tar.gz
2. 安装openssl-devel
# rpm -qa | grep openssl
openssl-1.0.1e-30.el6_6.5.x86_64
# yum install openssl-devel -y
查看安装位置
# rpm -ql openssl
/usr/share/doc/openssl-1.0.1e
3. 安装expat
tar –zxvf expat-2.1.0.tar.gz
./configure
make
make install
系统默认自带了expat但在编译svn时仍报以后错误,安装该包后正常编译(不需要卸载原来的expat)
configure: error: no XML parser was found: expat or libxml 2.x required
3. 安装svn
mkdir -p /opt/soft/svn/
tar -zxvf subversion-1.6.17.tar.gz
tar -zxvf subversion-deps-1.6.17.tar.gz
cd subversion-1.6.17
./configure --prefix=/opt/soft/svn/ --with-openssl=/usr/share/doc/openssl-1.0.1e --without-berkeley-db
make
make install
1.3 配置 SVN
根目录 /svndata
应用目录
apps
|
-----app1
| |
| -----app1.1
------app2
|
------share
用户 admin、user1、user2, 其中admin 可以读写 apps及其子目录,
user1可以读写app1及其子目录,可以看到share但不能写,看不到app2
user2可以读写app2及其子目录,可以看到share但不能写,看不到app1
建立数据仓库
mkdir /svndata/summary
svnadmin create /svndata/summary
修改版本配置库文件
vi /svndata/summary/conf/svnserve.conf
[general]
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
realm = summary
对用户配置文件的修改是立即生效的,不必重启svn。
设置账户与密码
vi /svndata/summary/conf/passwd
[users]
admin = admin
user1 = user1
user2 = user2
设置权限
vi /svndata/summary/conf/authz
[groups]
g_admin = admin
g_app1 = user1
g_app2 = user2
[summary:/]
@g_admin = rw
* = r
[summary:/apps]
@g_admin = rw
* = r
[summary:/apps/app1]
@g_admin = rw
@g_app1 = rw
* =
[summary:/apps/app2]
@g_admin = rw
@g_app2 = rw
* =
[summary:/apps/share]
* = r
cd /tmp
svn checkout svn://123.57.***.***/summary
cd summary/
mkdir -p apps/app1/app1.1
mkdir apps/app2
mkdir apps/share
svn add apps/
A apps
A apps/share
A apps/app2
A apps/app1
A apps/app1/app1.1
到此已完成snv的配置以及目录的初始化工作。
启动
svnserve -d -r /svndata/summary/
查看进程
# netstat -tunlp | grep svn
tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN 30662/svnserve
1.4 可能遇到的问题
1.4.1 eclipse连接不上svn
如果遇到Eclipse下使用SVN报Malformed network data的问题,使用以下方法解决
help-->Eclipse Marketplace-->Popular-->找到subclipse,点击install,然后重新安装。
如果输入保存密码,svn的密码会记录在电脑中,你在电脑中再次从svn中导出导入中将不再输入密码,要想重新输入密码,删除以下文件夹中的文件即可。
win7 :C:\Users\fei\AppData\Roaming\Subversion\auth\svn.simple
XP :C:\Documents
and Settings\camelot\Application Data\Subversion\auth\svn.simple
如果不行的话,可以在服务器上修改用户密码,再次连接时自然会让你输入。
1.4.2 svn找不到项目
找不到项目一般是权限出了问题,可参考以下例子重新配置权限。
该权限配置比较简单且100%正确,可在此基础上再进行约束。
# vi authz
[groups]
[/]
tanpf = rw
[/P1]
fang = rw
[/P2]
fang = rw
[/P3]
fang = rw
[/dgo1]
fang = rw
# vi passwd
[users]
tanpf = tanpf
fang = fang
“/”为svn的根目录,P1、P2、P3等为根目录下的子目录,tanpf用户可读写根目录下所有文件,而fang用户只可以读取相关的子目录。