赞
踩
操作环境:CentOS 7.2 64位
==============第一种:采用压缩包安装:比如你们公司服务器上安装软件有自己的规定,一般会采用压缩包安装。==============
下载地址:http://mirrors.cnnic.cn/apache/subversion/
我下载的是subversion-1.8.19版本,下载好的压缩包置于目录 /usr/local/java/svn 下(根据大家实际需要自行选择存放目录)。
在/usr/local/java/svn目录下执行下面两个命令:
# tar -zxvf subversion-1.8.15.tar.gz
#cd subversion-1.8.19/
先执行命令:# ./configure,看看有没有报错,
(1)如果没有报错则跳过下面的B步骤;
(2)如果有报错则看下面的B步骤安装依赖包,每安装完一个依赖包,就要在# ./configure 命令后面追加 --with参数并再次运行加了with参数的configure命令。
如果我只安了一个apr依赖包,那么就执行命令:
#./configure --with-apr=/usr/local/apr命令;
如果我安了apr和apr-util,那么就执行命令:
#./configure --with-apr=/usr/local/apr \
--with-apr-util=/usr/local/apr 命令;
如果下面的依赖包全安了,就执行下面的命令:
#./configure --with-apr=/usr/local/apr \
--with-apr-util=/usr/local/apr \
--with-serf=/usr/local/serf \
--with-openssl
# make && make install
解决方法如下:
yum install expat-devel
# make && make install
svn的配置主要就是对conf目录下的三个文件配置:svnserve.conf、passwd、authzs。
[general]配置段中配置行格式: <配置项> = <值> ,常用的配置项是以下5项:
用户名口令文件,该文件名在文件svnserve.conf中指定,缺省为同目录下的passwd。
该文件仅由一个[users]配 置段组成。
[users]配置段的配置行格式如下: <用户名> = <口令> ,注意:配置行中的口令是未经过任何处理的明文。
例:用户名口令文件conf/passwd的内容如下,配置了两个用户,用户名分别为”quanran”和”dongxuening”。其中”quanran”用户的口令为”111111”,”dongxuening”用户的口令为”222222”:
[users]
quanran = 111111
dongxuening = 222222
权限配置文件,该文件名也在文件svnserve.conf中指定,缺省为同目录下的authz。
该配置文件由一个[groups]配置段和 若干个版本库路径权限段组成。
[groups]配置段中配置行格式如下:
<用户组> = <用户列表>
用户列表由若干个用户组或用户名构成,用户组或用户名之间用逗号”,”分隔,引用用户组时要使用前缀”@”(如:引用用户组”all”要使用字符 串”@all”)。
版本库路径权限段的段名格式如下:
[<版本库名>:<路径>]
如版本库abc路径/tmp的版本库路径权限段的段名为”[abc:/tmp]”。
可省略段名中的版本库名。若省略版本库名,则该版本库路径权限段对所有版本库中相同路径的访问控制都有效。如:段名为”[/tmp]”的版本库路径权限段 设置了所有引用该权限配置文件的版本库中目录”/tmp”的访问权限。
版本库路径权限段中配置行格式有如下三种:
<用户名> = <权限>
<用户组> = <权限>
* = <权限>
其中,”*”表示任何用户;权限的取值范围为”、’r’和’rw’,”表示对该版本库路径无任何权限,’r’表示具有只读权限,’rw’表示有读写权 限。
注意:每行配置只能配置单个用户或用户组。
例3:权限配置文件conf/authz的内容如下:
[groups]
g_admin = admin,zhangsan
[admintools:/]
@g_admin = rw
* =
[test:/home/zhangsan]
zhangsan = rw
* = r
在上述配置文件中,定义了一个用户组”g_admin”,该用户组包含用户”admin”和”zhangsan”。然后定义了2个版本库路径权限段。其中, 版本库”admintools”只有用户组”g_admin”可读写,其他用户无任何权限;版本库”test”中路径”/home/zhangsan”只有 用户”zhangsan”有读写权限,其他用户只有可读权限。
输入命令:# svnserve -d -r /home/svn
注意:/svn目录为版本库的根目录,所以路径仅到/svn即可。
此时,SVN服务器的配置以及版本库已经建立完成!
访问地址:svn://[服务器IP地址]/[项目名称];
例如:svn://123.206.73.117/project/
输入已授权的用户信息登录即可访问资源位置。
同样的,可以通过右击项目[team]—[share],输入以上URL将项目共享至新建的SVN版本库中。
注意:上述地址中没有”/svn”这一级目录,”/svn”为版本库根目录,不用输入!!!!!!!!
若要在/svn目录下添加新的版本库,直接新建相应的目录,然后设置为版本库,最后配置即可,不需要重新运行svnserve -d -r /home/svn,也不需要把该命令应用到/svn目录下你所新建的目录,如果因为误操作执行了以上命令,会导致资源库不可用,再次运行svnserve -d -r /home/svn也会报:“不能绑定服务器套接字 地址已在使用”的错误字样“(若已至此,删除掉新建的资源库,并用ps -ef | grep svnserve查看进程,kill -9 [进程号] 杀掉,重新执行svnserve -d -r /home/svn,再次新建资源库,直接配置即可使用)
比如在/svn目录下另外新建一个project2的资源库,命令如下:
# mkdir -p /home/svn/project2
# svnadmin create /home/svn/project2
# 在次配置当前版本库的三个配置文件:svnserve.conf、passwd、authzs。
(不需再运行svnserve -d -r /home/svn !!!!!!!)
===========第二种:yum安装方式。优点:简单,一键安装,不用手动配置环境变量等。缺点:安装位置为yum默认===========
1. 安装subversion yum install subversion
2. 查看安装版本,检查安装是否成功 svnserve --version ,我装的版本为 1.7.14
3. 查看安装位置 rpm -ql subversion
1.创建用于存放版本库的目录,比如我准备在/home下创建版本库 mkdir -p /home/svn/
2.创建svn版本库,指定为刚才创建的目录 svnadmin create /home/svn/porject
3.创建完后,版本库目录下会生成一些文件,进入conf目录下。conf目录中authz文件是权限控制文件,passwd是帐号密码文件,svnserve.conf是SVN服务配置文件。
修改svnserver.conf文件:
[general]
anon-access = none #匿名用户可读
auth-access = write #授权用户可写
password-db = passwd #使用哪个文件作为账号文件
authz-db = authz #使用哪个文件作为权限文件
4.修改passwd文件,加入用户,格式就是“用户名=密码”,如:
quanran = 11
dongxuening = 22
5.修改authz文件,加入用户权限:
[/]
quanran = rw
dongxuening = r
这就表示quanran 用户对版本库根目录有读写权限(即最高权限了),而dongxuening 用户对版本库目录只有读的权限。
6.svnserve.conf里面常用的配置有设置匿名用户(默认可读)、授权用户(默认读写)的读写权限,以及指定账号文件(默认passwd)、权限文件(默认authz)的路径等。看起来应该默认值就够了,但实际使用发现还是得手动把相关注释打开,不知道是什么原因。
7.启动svn版本库 svnserve -d -r /home/svn/
其中,-r的作用是设置根目录路径,比如我这样设置后在访问时输入svn://x.x.x.x/就会直接到我的svn目录下(当然在svn目录下是找不到版本库的),如果想访问版本库则输入svn://x.x.x.x/Code即可。
换句说话,如果启动版本库时命令为svnserve -d -r /home/svn/,则访问svn://x.x.x.x/就能直接到版本库内。
1.注意打开端口的访问权限。svn服务的默认端口为3690,比如我部署在阿里云服务器上,必须先在阿里云控制台打开3690端口的外部访问权限。
2.关闭svn服务的方式是杀掉进程,kill pid或者pkill svnserve
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。