aliyun CentOS6.5 上 svn 安装笔记

时间:2021-06-15 14:38:12

为了方便管理自己的一些学习资料、总结等,在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用户只可以读取相关的子目录。