CentOS下的SVN服务器搭建过程以及分析
来源:互联网 发布:线切割编程基础知识 编辑:程序博客网 时间:2024/06/02 05:21
1.yum安装svn
yum install -y subversion
等待一会儿,显示下边的内容。
Dependency Installed:
gnutls.i686 0:2.8.5-10.el6_4.2 libproxy.i686 0:0.3.0-4.el6_3
libproxy-bin.i686 0:0.3.0-4.el6_3 libproxy-python.i686 0:0.3.0-4.el6_3
neon.i686 0:0.29.3-3.el6_4 pakchois.i686 0:0.4-3.2.el6
perl-URI.noarch 0:1.40-2.el6
Complete!
2.验证是否安装完成
svnserve --version
这是我的显示内容。
svnserve,版本 1.6.11 (r934486)
编译于 Apr 11 2013,17:28:04
版权所有 (C) 2000-2009 CollabNet。
Subversion 是开放源代码软件,请参阅 http://subversion.tigris.org/ 站点。
此产品包含由 CollabNet(http://www.Collab.Net/) 开发的软件。
下列版本库后端(FS) 模块可用:
* fs_base : 模块只能操作BDB版本库。
* fs_fs : 模块与文本文件(FSFS)版本库一起工作。
Cyrus SASL 认证可用。
3.创建svn版本库
mkdir /var/svn #我这里把版本库放在了var目录下的svn文件夹,方便管理
svnadmin create /var/svn/repo0 #我这里将svn作为所有版本库的目录,并创建了一个名为repo0的版本库
4.配置当前的版本库
创建版本库后,在当前版本库目录中会生成下面的文件,其中我们关心的是配置文件。
[root@localhost svn]# ls
repo0
[root@localhost svn]# cd repo0
[root@localhost repo0]# ls
conf db format hooks locks README.txt
[root@localhost repo0]# pwd
/var/svn/repo0
[root@localhost repo0]# cd conf
[root@localhost conf]# ls -a
. .. authz passwd svnserve.conf
说明:
(1)svnserve.conf: svn服务综合配置文件。
(2)passwd: 用户名口令文件。
(3)authz: 权限配置文件。
4.1 修改passwd文件
### This file is an example password file for svnserve.
### Its format is similar to that of svnserve.conf. As shown in the
### example below it contains one section labelled [users].
### The name and password for each user follow, one account per line.
[users]
# harry = harryssecret
# sally = sallyssecret
repouser0 = user0passwd
rock=rockpasswd
注意::: repouser0 = user0passwd 开头不能有空格,否则会报错
其中对应的是 用户名=密码 ,其中等号两边的空格不是必须的。
4.2修改authz文件
[aliases]
# joe = /C=XZ/ST=Dessert/L=Snake City/O=Snake Oil, Ltd./OU=Research Institute/CN=Joe Average
#这里实现了别名的定义
[groups]
# harry_and_sally = harry,sally
# harry_sally_and_joe = harry,sally,&joe
team0=erpouser0 #将上面创建的分成两个组
team1=rock
# [/foo/bar]
# harry = rw
# &joe = r #上面的别名定义在这里实现 &在这里理解为指针就很容易了
# * =
# [repository:/baz/fuz]
# @harry_and_sally = rw
# * = r
[repo0:/]
@team0=r
@team1=rw
# 第一个小组只有读取的权限,第二个小组有读写的权限
# 单个版本库的权限配置在这个文件中实现
4.3 修改svnserve.conf
vim svnserve.conf
[general]
### These options control access to the repository for unauthenticated
### and authenticated users. Valid values are "write", "read",
### and "none". The sample settings below are the defaults.
anon-access = none #没有登录的用户不能访问
auth-access = write #登录的用户可以写入
### The password-db option controls the location of the password
### database file. Unless you specify a path starting with a /,
### the file's location is relative to the directory containing
### this configuration file.
### If SASL is enabled (see below), this file will NOT be used.
### Uncomment the line below to use the default password file.
password-db = passwd #密码文件为当前目录下的passwd
### The authz-db option controls the location of the authorization
### rules for path-based access control. Unless you specify a path
### starting with a /, the file's location is relative to the the
### directory containing this file. If you don't specify an
### authz-db, no path-based access control is done.
### Uncomment the line below to use the default authorization file.
authz-db = authz #验证文件为当前目录下的authz
5 停止和启动svn
5.1启动svn
svnserve -d -r /var/svn/
5.2关闭svn
ps -aux |grep svn
kill -9 进程id
6 导入工程
$ mkdir MyProject
$ mkdir MyProject/trunk
$ mkdir MyProject/branches
$ mkdir MyProject/tags
svn import MyProject svn://192.168.1.109/repo0/MyProject -m "first import project"
7导出工程
svn co svn://192.168.1.109/repo0/MyProject
8 总结
在互联网如此发达的今天,几乎你想要找什么技术文章都能找到,但是,你会发现,完全一样【标点都一样】的文章,出现在大大小小的网站,在想找到第二篇不同视点的文章,太难了。拿来主义很疯狂,我们这些技术人员需要的,更是创新。开源精神,从我做起。写技术博客,更多的是多自己的一种修行,一种提高,实践是最好的老师。
并通过http访问
安装:
安装svn,一般情况下,选择yum方式安装还是比较简单的。
[root@moshi ~]# yum -y install mod_dav_svn#会自动安装mod_dav_svn及其依赖包:mod_dav_svn-1.6.11-9,neon-0.29.3-2,pakchois-0.4-3.2,subversion-1.6.11-9
直接安装这个就能把svn服务器直接KO了。
2.安装httpd
[root@moshi ~]# yum -y install httpd
一般情况下,linux服务器是有httpd服务的,你可以检查下,如果没有则安装。
检查方法:
[root@moshi ~]# vi /etc/httpd/conf.d/subversion.conf
安装完svn后看是否有该目录&文件,如果存在则不需要安装httpd了。
3.安装完SVN,接下来就是配置了。
配置:
1、配置svn仓库
#创建svn目录[root@moshi ~]# mkdir -p /home/svn/repos1 #仓库1[root@moshi ~]# mkdir -p /home/svn/repos2 #仓库2#可以任意配置,任意指定你喜欢的目录#建立svn版本库[root@moshi ~]# svnadmin create /home/svn/repos1[root@moshi ~]# svnadmin create /home/svn/repos2#有多少个仓库就执行多少次该命令,只需要换最后的名字即可
2、修改SVN版本库配置文件
[root@moshi ~]# vi /home/svn/repos1/conf/svnserve.conf
修改文件结果如下:
[general]anon-access = none auth-access = writepassword-db = /home/svn/conf/pwd.conf #指向用户配置文件authz-db = /home/svn/conf/authz.conf #指向权限配置文件realm = repos1 #指向svn仓库地址
备注:其他仓库配置和该配置相同,只需要修改仓库路径。
3.配置svn用户和权限
[root@moshi ~]# vim /home/svn/conf/pwd.cof[root@moshi ~]# vim /home/svn/conf/authz.conf#这是2个步骤,我这里为更好的阅读,写在一起1.配置用户由于这个配置是我自定义的,所以要先vim创建该文件,也可以用其他方式创建。[root@moshi ~]# vim /home/svn/conf/pwd.conf#保存退出[root@moshi ~]# htpasswd -c /home/svn/conf/pwd.conf admin#根据提示输入密码,第一个用户才需要加-c,后面的用户不需要-c[root@moshi ~]# htpasswd /home/svn/conf/pwd.conf test[root@moshi ~]# vi /home/svn/conf/pwd.conf在用户最上方加上[users]
加上[users]这一步是很重要的,因为用htpasswd的方式加用户会覆盖掉[users],所以每次加完用户需要回去补一下该节点
2.配置权限[root@moshi ~]# vim /home/svn/conf/authz.conf文件内容如下:[groups]admin=user1,user2test=user3[/]@admin=rw[repos1:/]user3=r
解释:[groups]为组定义,可以在该组下加很多用户,以,分割,
但是该用户数据必须在/homd/svn/conf/pwd.conf中定义好,
[/]表示根目录以下的权限定义
[repos1:/]表示仓库下的权限定义
如果要分项目,则以此规则类推:
如:[repos1:/aaa]则表示仓库下的aaa项目的权限定义。
@admin 表示admin这个组下的用户权限。
user1=r 表示user1这个用户的权限。
权限类型:r,w,rw 分别表示只读,只写,读写。如果是user1= 这种空情况则表示没有。
OK,到此svn配置完成。我们可以把默认的配置文件删除。
[root@moshi ~]# rm -rf /home/svn/repos1/conf/passwd[root@moshi ~]# rm -rf /home/svn/repos2/conf/authz##多个仓库则删除多个仓库对应的文件即可
4.建立启动svn的用户
[root@moshi ~]# useradd svn #如果提示svn账户已存在,则执行以下命令[root@moshi ~]# passwd svn ##根据提示修改下密码,不能过于简单,可使用常用密码[root@moshi ~]# chown -R svn:svn /home/svn/ ##允许用户svn访问版本库[root@moshi ~]# chmod –R o+rw /home/svn ##解决windows检出提交提示/home/svn/db/txn-current-lock’错误
5.配置svn的端口
[root@moshi ~]# vi /etc/httpd/conf/httpd.conf
找到
#Listen 12.34.56.78:80这一行,
Listen 9999 ##9999就是svn的端口,默认是80,你可以修改成你自己想要的。不建议使用默认80端口
5.配置httpd
[root@moshi ~]# vi /etc/httpd/conf.d/subversion.conf
修改文件内容为:
<Location /svn>
DAV svn
SVNListParentPath on
SVNParentPath /home/svn
AuthType Basic
AuthName "Authorization"
AuthUserFile /home/svn/conf/pwd.conf ##对应你的用户配置文件
AuthzSVNAccessFile /home/svn/conf/authz.conf ##对应你的权限配置文件
Require valid-user
</Location>
保存退出!
重启httpd服务。
[root@moshi ~]# service httpd restart停止 httpd: [确定]正在启动 httpd: [确定]
出现以上字样,表名httpd的配置已经成功启动成功。
6.启动svn
[root@moshi ~]# svnserve -d -r /home/svn/
7.查看svn服务是否正常
[root@moshi ~]# ps aux|grep svn##出现以下内容说明svn服务已经成功启动root 8610 0.0 0.0 152864 740 ? Ss 11:25 0:00 svnserve -d -r /home/svn/repos1/root 13128 0.0 0.0 103252 876 pts/0 S+ 14:00 0:00 grep svn
8.进入浏览器访问。
在浏览器中输入:服务器Ip+端口+httpd配置中的<Location /svn>。
如:http://192.168.1.1:9999/svn
会提示你输入用户名密码。
9.总结
嗯,没啥太多总结,这些内容都是我从网上综合多个帖子试验出来的结果,希望能给你一些帮助。
友情链接:
http://www.cnblogs.com/b028/archive/2010/07/23/1867311.html
http://www.aiezu.com/system/linux/linux_centos_yum_apache_svn.html
- CentOS下的SVN服务器搭建过程以及分析
- CentOS下的SVN服务器搭建过程以及分析
- centos下的svn服务器搭建过程以及分析
- CentOS下的SVN服务器搭建过程以及分析
- CentOS下的SVN服务器搭建过程以及分析
- CentOS下SVN服务器的搭建使用
- CentOS下SVN服务器的搭建使用
- centos下svn服务器的搭建
- CENTOS下搭建SVN服务器
- centos下svn服务器搭建
- CentOS下SVN服务器搭建
- CENTOS下搭建SVN服务器
- CentOS下搭建svn服务器
- centos下搭建svn服务器
- centos 下搭建svn服务器
- Centos下搭建SVN服务器
- Centos下搭建SVN服务器
- centos搭建svn服务器以及hdwiki
- 四大组件
- UML之面向对象技术
- npm配置
- mysql 常用命令
- tomcat版本低招致启动报"Unable to process Jar entry" for all javassist classes
- CentOS下的SVN服务器搭建过程以及分析
- WebService框架WebService-CXF (二) --参考传智播客视频
- oc block 测试
- C++卷积神经网络实例:tiny_cnn代码详解(5)——convolutional_layer类结构信息之其他成员函数
- 【基础算法】选择排序与冒泡排序
- 蓝桥杯历届-九数分三组
- jar包冲突,jetty跑起来的项目在tomcat跑不起来
- [LeetCode]264 丑数 II
- “平行算法”求二进制数中1的个数