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