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

最新文章

  1. 浅谈一下关于使用css3来制作圆环进度条
  2. NPOI基本操作XLS
  3. 深入浅出 - Android系统移植与平台开发(六)- 为Android启动加速
  4. 内核编译选配(VMware篇)
  5. Opencv Linux环境搭建
  6. 爱拼图游戏android源码完整版
  7. java多线程学习笔记——详细
  8. 【转】移动互联网应用测试成长技能树V1.0
  9. WPF与输入法冲突研究之二:汉字输入法会导致WPF程序的崩溃!
  10. [置顶] fmt日期格式化
  11. Android Studio 入门(转)
  12. IQ调制、整形滤波器与星座映射
  13. Android- assent和raw的区别
  14. 【WEB API项目实战干货系列】- API访问客户端(WebApiClient适用于MVC/WebForms/WinForm)(四)
  15. 解决:SSM框架中普通类调用Service的问题 (转)
  16. Confluence 6 访问你的宏正文(body)
  17. $O(n+log(mod))$求乘法逆元的方法
  18. sparkStreaming插入mysql 必须考虑到实时更新老的key
  19. C# Message类的属性Msg所关联的消息ID
  20. 树莓派3b 串口通信初次尝试

热门文章

  1. Sumdiv(快速幂+约数和)
  2. HTTP 错误 404.2 - Not Found
  3. phpcms 01
  4. linux网络基础--学习笔记
  5. P2680 运输计划
  6. 四个好看的CSS样式表格
  7. 配置 ASP.NET Linux( CentOS 6.5 ) 运行环境 MONO + Jexus
  8. 编译android源码官方教程(2)建立编译环境「linux & mac osx」
  9. 使用VS2010开发Qt程序的一点经验(转载)
  10. Scanner