SVN服务搭建
yum install -y subversion
svnserve --version //查看版本信息
subversion默认以/var/svn作为数据根目录,
通过
/etc/sysconfig/svnserve
修改这个默认位置,先查看下svnserve.service文件,发现EnvironmentFile=/etc/sysconfig/svnserve
使用svnadmin建立版本库
mkdir -p /opt/svn/repo //创建/opt/svn/repo目录
svnadmin create /opt/svn/repo/ //创建一个版本仓库
ls /opt/svn/repo/ 有以下内容
conf db format hooks locks README.txt
注:
conf ——用户认证和权限、配置文件
db ——版本控制信息产生的数据
format ——当前代码库账号数据
hooks:存放版本库子目录,比如我们要实现同步更新的操作,在这里实现
locks:存放库锁目录,用来跟踪库的访问者
调整SVN参数
cd /opt/svn/repo/conf/
vi svnserve.conf //总体配置
去掉注释,修改以下内容:
anon-access = none //匿名用户没有任何权限
auth-access = write //认证用户具有写权限
password-db = /opt/svn/repo/conf/passwd //用户的密码文件
authz-db = /opt/svn/repo/conf/authz //用户信息文件
realm = //前面加#注释掉 指定版本库的认证域,即在登录时提示的认证域名称
启动SVN服务
svnserve -d -r /opt/svn/repo/ //以守护模式启动SVN服务,关闭用kill pid
netstat -anptu | grep svnserve //3690端口监听
cd /opt/svn/repo/conf/
vi passwd //明文设置用户和密码
pq = abc123 //格式:用户名 = 用户密码
sysadmin = sysadmin
vi authz //详细权限配置文件
[/] 根目录,也就是/opt/svn/repo
sysadmin = r
alpha = r
[/webphp] //指定目录
sysadmin = r //运维工程师账户具有读权限,用于部署
pq = rw //程序员对此目录有读写权限
mkdir /opt/svn/repo/webphp //创建要被管理的目录
cd /opt/svn/repo
svn import webphp file:///opt/svn/repo/webphp/ -m "init web" //初始化目录,导入webphp
初始化后,会自动得到一个版本为1 ,再看webphp没有东西,因为程序员没在里面写东西。
实验
svn co svn://192.168.80.110/webphp //客户端访问
root的密码:输入虚拟机的root登录密码
alpha的密码:输入写入账户密码文件的账户和密码