如何在linux上安装linux svn服务器端口

使用yum安装非常简单:
yum install subversion
我们这里在/home下建立一个名为svn的仓库(repository),以后所有代码都放在这个下面,创建成功后在svn下面多了几个文件夹。
[root@localhost /]# cd /home
[root@localhost home]# mkdir svn
[root@localhost home]# svnadmin create /home/svn
[root@localhost home]# ls svn
README.txt
我们这里特别关注一下conf文件夹,这个是存放配置文件的
[root@localhost home]# cd svn/conf
[root@localhost conf]# ls
svnserve.conf
authz 是权限控制文件
passwd 是帐号密码文件
svnserve.conf 是SVN服务配置文件
接下来我们依次修改这3个文件。
配置passwd
[root@localhost conf]# vi passwd
test1=123456
test2=123456
上面的例子中我们创建了2个用户,一个test1,一个test2
[root@localhost conf]# vi authz
liuxianan=rw
上面配置的含义是,liuxianan对/home/svn/下所有文件具有可读可写权限,test只有只读权限,除此之外,其它用户均无任何权限,最后一行*=很重要不能少。
拓展:使用用户分组
这个我一般不用,但是记录下来。
还是这个文件:
[root@localhost conf]# vi authz
group1 = liuxianan
group2 = test1,test2
@group1 = rw
@group2 = r
上面配置中创建了2个分组,分组1的用户可读可写,分组2的用户只读。
格式说明:
版本库目录格式:
[:/项目/目录]
配置svnserve.conf
[root@localhost conf]# vi svnserve.conf
打开下面的5个注释
anon-access = read #匿名用户可读
auth-access = write #授权用户可写
password-db = passwd #使用哪个文件作为账号文件
authz-db = authz #使用哪个文件作为权限文件
realm = /home/svn # 认证空间名,版本库所在目录
最后一行的realm记得改成你的svn目录
打开注释时切记前面不要留有空格,否则可能有问题(网上说的,我没有亲测)
启动与停止
[root@localhost conf]# svnserve -d -r /home/svn(启动)
[root@localhost conf]#killall svnserve(停止)
上述启动命令中,-d表示守护进程, -r 表示在后台执行。停止还可以采用杀死进程的方式:
[root@localhost conf]# ps -ef|grep svnserve
00:00:00 svnserve -d -r /home/svn
0 22:05 pts/0
00:00:00 grep svnserve
[root@localhost conf]# kill -9 4908
最后来个总的截图:
客户端连接
这里使用TortoiseSVN,输入地址svn://你的IP 即可,不出意外输入用户名和密码就能连接成功了。
默认端口3690,如果你修改了端口,那么要记得加上端口号。
总的来说,如果你不需要杂七杂八的权限配置只是自己一个人用的话,安装配置还是比较简单的,并不像网上说的那么麻烦,我按照网上的方法一次性成功了。
扩展:yum安装路径
以svn为例:
# rpm -qa | grep subversion
subversion-1.6.11-15.el6_7.x86_64
# rpm -ql subversion-1.6.11-15.el6_7.x86_64
/usr/share/doc/subversion-1.6.11
/usr/share/doc/subversion-1.6.11/BUGS
/usr/share/doc/subversion-1.6.11/CHANGES
rpm -qa 查询所有安装的rpm包,可以配合grep命令。
rpm -qi 查询某个具体包的介绍。
rpm -ql 列出某个具体包的所有文件
rpm几个默认安装路径:
一些设置文件放置的目录
一些可执行文件
/usr/lib64
一些程序使用的动态函数库
/usr/share/doc
一些基本的软件使用手册与帮助文档
/usr/share/man
一些man page文件
阅读(...) 评论()linux下安装配置svn独立服务器的步骤分享
字体:[ ] 类型:转载 时间:
subversion(以下简称svn)是近年来崛起的版本管理工具,是cvs的接班人。 svn服务器有2种运行方式:独立服务器和借助apache。2种方式各有利弊
直接版本库访问(本地磁盘)。
通过配置Subversion的Apache服务器的WebDAV协议。
与http://相似,但是包括SSL加密。
通过svnserve服务自定义的协议。
svn+ssh://
与svn://相似,但通过SSH封装svn存储版本数据也有2种方式:BDB和FSFS。因为BDB方式在服务器中断时,有可能锁住数据,所以还是FSFS方式更安全一点。1. svn服务器安装操作系统: Redhat Linux AS4获取svn安装包下载http://subversion.tigris.org/downloads/subversion-1.4.0.tar.gz和http://subversion.tigris.org/downloads/subversion-deps-1.4.0.tar.gz。编译svn以root用户登录。将subversion-1.4.0.tar.gz和subversion-deps-1.4.0.tar.gz传到服务器。tar xfvz subversion-1.4.0.tar.gztar xfvz subversion-deps-1.4.0.tar.gzcd subversion-1.4.0./configure –prefix=/opt/svn –without-berkeley-db –with-zlib(注:以svnserve方式运行,不加apache编译参数。以fsfs格式存储版本库,不编译berkeley-db)make cleanmakemake installvi /etc/profile,在/etc/profile最后加入:PATH=$PATH:/opt/svn/binexport PATHsvn测试svnserve –version如果显示如下,svn安装成功:
svnserve, version 1.4.0 (r21228)compiled Oct 12 :56Copyright (C)
CollabNet.Subversion is open source software, see This product includes software developed by CollabNet ().The following repository back-end (FS) modules are available:* fs_fs : Module for working with a plain file (FSFS) repository.2. svn配置建立svn版本库目录可建多个:mkdir -p /opt/svndata/repos1mkdir -p /opt/svndata/repos2建立svn版本库svnadmin create /opt/svndata/repos1svnadmin create /opt/svndata/repos2修改svn版本库配置文件版本库1:vi /opt/svndata/repos1/conf/svnserve.conf内容修改为:[general]anon-access = noneauth-access = writepassword-db = /opt/svn/conf/pwd.confauthz-db = /opt/svn/conf/authz.confrealm = repos1版本库2:vi /opt/svndata/repos2/conf/svnserve.conf内容修改为:[general]anon-access = noneauth-access = writepassword-db = /opt/svn/conf/pwd.confauthz-db = /opt/svn/conf/authz.confrealm = repos2即除realm = repos2外,其他与版本库1配置文件完全相同。如果有更多的版本库,依此类推。配置允许访问的svn用户vi /opt/svn/conf/pwd.conf为了简化配置,2个版本库共用1个用户配置文件。如有必要,也可以分开。注意:对用户配置文件的修改立即生效,不必重启svn。文件格式如下:[users]&用户1& = &密码1&&用户2& = &密码2&其中,[users]是必须的。下面列出要访问svn的用户,每个用户一行。示例:[users]alan = passwordking = hello配置svn用户访问权限vi /opt/svn/conf/authz.conf为了简化配置,3个版本库共用1个权限配置文件/opt/svn/conf/pwd.conf。如有必要,也可以分开。文件中定义用户组和版本库目录权限。注意:* 权限配置文件中出现的用户名必须已在用户配置文件中定义。* 对权限配置文件的修改立即生效,不必重启svn。用户组格式:[groups]&用户组名& = &用户1&,&用户2&其中,1个用户组可以包含1个或多个用户,用户间以逗号分隔。版本库目录格式:[&版本库&:/项目/目录]@&用户组名& = &权限&&用户名& = &权限&其中,方框号内部分可以有多种写法:/,表示根目录及以下。根目录是svnserve启动时指定的,我们指定为/opt/svndata。这样,/就是表示对全部版本库设置权限。repos1:/,表示对版本库1设置权限repos2:/abc, ,表示对版本库2中的abc项目设置权限repos2:/abc/aaa, ,表示对版本库2中的abc项目的aaa目录设置权限权限主体可以是用户组、用户或*,用户组在前面加@,*表示全部用户。权限可以是w、r、wr和空,空表示没有任何权限。示例:[groups]admin = alan[/]@admin = rw[repos1:/abc/aaa]king = rw[repos2:/pass]king =svn配置完毕,删除无用文件rm /opt/svndata/repos1/conf/authzrm /opt/svndata/repos1/conf/passwdrm /opt/svndata/repos2/conf/authzrm /opt/svndata/repos2/conf/passwd3. 启动svn建立启动svn的用户useradd svnpasswd svn根据提示为用户svn设置密码允许用户svn访问版本库chown -R svn:svn /opt/svndatachown -R svn:svn /opt/data启动svnsu - svn -c "svnserve -d --listen-port 9999 -r /opt/svndata"其中:su - svn表示以用户svn的身份启动svn-d表示以daemon方式(后台运行)运行–listen-port 9999表示使用9999端口,可以换成你需要的端口。但注意,使用1024以下的端口需要root权限-r /opt/svndata指定根目录是/opt/svndata检查:ps -ef|grep svnserve如果显示如下,即为启动成功:svn    6941   1 0 15:07 ?    00:00:00 svnserve -d –listen-port 9999 -r /opt/svndata通过web方式访问svn有很多方法,请参阅配置websvn或配置bsSvnBrowser的方法。相关参考:/developerworks/cn/opensource/os-subversion/
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具用户名:yjh625
文章数:25
访问量:21347
注册日期:
阅读量:1297
阅读量:3317
阅读量:581472
阅读量:465992
[匿名]51cto游客:
51CTO推荐博文
环境:操作系统:CentOS 6.2 64bitSVN版本:Version 1.6.11Apache版本:Apache/2.2.15 &一、SVN简介 & & SubVersion(SVN)是近几年崛起的版本管理软件,是CVS的接班人,目前绝大多数开源软件都使用SVN来进行版本管理。SVN支持Linux和Windows,但是较多安装在Linux上。 & & SVN服务器有两种运行方式:独立服务器(svn://)、借助于Apache(http://) & & SVN的基本工作原理:在一台服务器上简历一个源代码库,库里开源存放许多不同项目的源程序,由源代码管理员统一管理。每个用户在使用源代码之前,首先要把源代码下载到本地,然后开发人员直接在本地修改,之后提交到SVN服务器。版本控制解决了:代码管理混乱解决代码冲突困难在代码整合期间引发bug无法对代码的拥有者进行权限控项目不同版本发布困难 & & SVN工作示意图如下:SVN版本库目录说明:dav目录:提供apache与mod_dav_svn使用的目录,让他们存储内部数据db目录:所有版本控制的数据存放文件hooks目录:放置hook脚本文件的目录locks目录:来放置subversion锁定数据的目录,用来追踪存取文件库的客户端format文件:一个文本文件,里面只放了一个整数。表示当前文件库配置的版本号conf目录: 这个仓库的配置文件(仓库的用户访问账号、权限等)二、SVN安装这里为了方便就直接使用yum安装SVN等相关软件了# yum -y install subversion mysql-server httpd mod_dav_svn mod_perl sendmail wget gcc-c++ make unzip perl*subversion:SVN服务器安装软件Mysql-Server:用户codestrike软件(code review软件)httpd、mod_dav_svn、mod_perl:用户web方式管理SVNSendMail:发送邮件其他:都是一些必备的软件包三、SVN的基本配置新建svn版本库# mkdir -p /svn/mp3
# svnadmin create /svn/mp3注意:svn版本库可以创建多个初始化版本库的目录# mkdir -p test
# touch test/kavin.txt
test/kavin1.txt test/kavin12.txt
# svn import test file:///svn/mp3app -m "初始化目录"SVN权限设置因为这里SVN后期需要和Apache结合,这里就不在权限设置了,不过还是需要下文件的相关设置,权限设置主要是在版本库目录下conf目录下的问题,每个文件的作用如下:passwd:添加删除svn的用户及密码authz:设置每个用户的目录权限svnserve.conf:设置密码文件及认证文件文件的路径,也就是上面的两个文件svn的启动与关闭启动:svnserve -d -r /svn关闭: kill -9 [pid]svn测试# svn co svn://192.168.8.137/mp3
mp3/kavin.txt
mp3/kavin1.txt
mp3/kavin12.txt如上svn checkout成功,因为这里是没有设置用户权限的,所有直接显示。如果有设置权限的话,需要输入账号密码的。四、配置SVN的Http支持修改httpd.conf在/etc/httpd/conf/httpd.conf文件最后添加如下内容:# vim httpd.conf
&Location /svn&
#SVNPath /svn/
SVNListParentPath on
SVNParentPath /svn
AuthType Basic
AuthName "Subversion Auth"
AuthUserFile /svn/passwd
AuthzSVNAccessFile /svn/authz
Satisfy all
Require valid-user
&/Location&Apache启动与关闭启动之前记得将svn版本库的用户权限都改成apache,因为apache都是以这个账号来运行的。# chown -R apache:apache /svn
# /etc/init.d/httpd start
# /etc/init.d/httpd stop
#关闭创建用户#
htpasswd /svn/passwd kavin修改版本库访问权限,如下:# egrep -v "^#|^$" authz
admin = kavin
@admin = rw
@admin = rw验证浏览器访问效果图如下:五、配置邮件提醒支持1、安装Perl模块Module::Build# wget http://search.cpan.org/CPAN/authors/id/D/DA/DAGOLDEN/Module-Build-0.36_11.tar.gz
# tar xvf Module-Build-0.36_11.tar.gz
# cd Module-Build-0.36_11
# perl Build.PL
# ./Build test
# ./Build install
# cd ..2、安装Perl模块Authen::SASL# wget http://search.cpan.org/CPAN/authors/id/G/GB/GBARR/Authen-SASL-2.15.tar.gz
# tar xvf Authen-SASL-2.15.tar.gz
# cd Authen-SASL-2.15
# perl Makefile.PL
# make test
# make install
# cd ..3、安装Perl模块Net::SMTP_auth# wget http://search.cpan.org/CPAN/authors/id/A/AP/APLEINER/Net-SMTP_auth-0.08.tar.gz
# tar xvf Net-SMTP_auth-0.08.tar.gz
# cd Net-SMTP_auth-0.08
# perl Makefile.PL
# make test
# make install
# cd ..4、安装Perl模块SVN::Notify# wget http://search.cpan.org/CPAN/authors/id/D/DW/DWHEELER/SVN-Notify-2.80.tar.gz
# tar xvf SVN-Notify-2.80.tar.gz
# cd SVN-Notify-2.80
# perl Build.PL
# ./Build test
# ./Build install
# cd ..5、修改post-commit脚本:commit提交动作之后触发的脚本安装完以上基本模块之后,我们可与知道在SVN的每个版本库的hooks都存在一些脚本模块,如下:# ll -h /svn/mp3/hooks/
total 112K
-rw-r--r--. 1 apache apache 2.0K Nov 22 14:46 post-commit.tmpl
-rw-r--r--. 1 apache apache 1.6K Nov 22 14:46 post-lock.tmpl
-rw-r--r--. 1 apache apache 2.3K Nov 22 14:46 post-revprop-change.tmpl
-rw-r--r--. 1 apache apache 1.6K Nov 22 14:46 post-unlock.tmpl
-rw-r--r--. 1 apache apache 3.4K Nov 22 14:46 pre-commit.tmpl
-rw-r--r--. 1 apache apache 2.4K Nov 22 14:46 pre-lock.tmpl
-rw-r--r--. 1 apache apache 2.8K Nov 22 14:46 pre-revprop-change.tmpl
-rw-r--r--. 1 apache apache 2.1K Nov 22 14:46 pre-unlock.tmpl
-rw-r--r--. 1 apache apache 2.8K Nov 22 14:46 start-commit.tmpl以上是不能够直接使用的,需要对这些脚本模块进行一些修改,我们这次需要对post-commit进行一定修改,使其能够在commit成功之后发送通知邮件:# cd /svn/mp3/hooks
# cp -p post-commit.tmpl post-commit
# chmod +x post-commit
# cp -p /usr/share/doc/subversion-1.6.11/tools/hook-scripts/mailer/mailer.py .
# cp -p /usr/share/doc/subversion-1.6.11/tools/hook-scripts/mailer/mailer.conf.example mailer.conf以上将发送通知邮件必须的一些文件给copy过来了,最后剩下的就是修改post-commit、mailer.conf两个文件了,修改之后的内容如下:# cat
post-commit
REPOS="$1"
#mailer.py commit "$REPOS" "$REV" /path/to/mailer.conf
/svn/mp3/hooks/mailer.py commit "$REPOS" "$REV" /svn/mp3/hooks/mailer.conf# egrep -v "^#|^$"
mailer.conf
smtp_hostname =
smtp_username = kavin_yang@
smtp_password = yjh1987625
[defaults]
diff = /usr/bin/diff -u -L %(label_from)s -L %(label_to)s %(from)s %(to)s
commit_subject_prefix = [SVN Commit]
propchange_subject_prefix = [SVN PropChange]
lock_subject_prefix = [SVN Lock]
unlock_subject_prefix = [SVN
from_addr = kavin_yang@
reply_to =
generate_diffs = add copy modify
show_nonmatching_paths = yes
[maps]通过以上的修改,这样svn的通知邮件设置就完成,具体请康如下示例:6、修改pre-commit脚本:commit提交动作之前触发的脚本本次修改这次脚本是重要判断是否输入日志信息,并且判断是否输入足够的字数,具体详见脚本:# cd /svn/mp3/hooks
# cp -p post-commit.tmpl pre-commit
# chmod +x pre-commit
# cat pre-commit
# /bin/bash
REPOS="$1"
# Make sure that the log message contains some text.
SVNLOOK=/usr/bin/svnlook
LOGMSG=`$SVNLOOK log -t "$TXN" "$REPOS" | grep "[a-zA-Z0-9]" | wc -c`
if [ "$LOGMSG" -lt 3 ];
echo "Log message can't be empty! you must input more than 3 chars as comment!." 1&&2
fi以上脚本为当日志信息少于3个字符时,将报错并禁止commit。报错详见如下:六、安装过程中出现的错误①、svnserve &-d -r /svn/启动svn服务器过程中出现svnserve.conf:12: Option expected报错信息解决方案:出现这个问题是由于Subversion读取配置svnserve.conf无法识别前面有空格的配置项,去除空格即可②、配置好svn+http之后,账号和密码一致正常,但是一直无法登陆。error.log出现reason: verification of user id 'kavin' not configured的错误信息解决方案:这个是由于系统SeLinux还处于开启中,关闭SeLinux即可。通过setenforce 0关闭,或者修改/etc/selinux/config文件,将SELINUX=disabled,然后重启系统。③、Could not open the requested SVN filesystem &[500, #2]解决方案:在多SVN版本库环境下,httpd.conf配置需要添加SVNListParentPath on &、SVNParentPath /svn两个设置项。以上就是SVN的安装与配置。本文出自 “” 博客,请务必保留此出处
了这篇文章
类别:┆阅读(0)┆评论(0)1.查看yum是否安装
在终端中输入yum即可如果已经安装,会显示yum的参数,如果没有安装,会提示yum未安装或无效命令……
yum -y install subversion
出现下面截图后,表示安装完成。
3.创建目录并配置
建立版本库目录
mkdir -p /data/svn/repo
svnadmin create
/data/svn/repo
执行上面的命令后,自动建立repo测试库,查看/data/svn/repo 文件夹发现包含了conf, db,format,hooks, locks, README.txt等文件,说明一个SVN库已经建立。
4.用户密码passwd配置
[root@localhost password]# cd /data/svn/repos/conf
[root@admin conf]# vim passwd
修改passwd为以下内容:
# harry = harryssecret
# sally = sallyssecret
用户名=密码
这样我们就建立了hello用户, 123密码
以上语句都必须顶格写, 左侧不能留空格, 否则会出错.
5.权限控制authz配置
[root@admin conf]# vi
目的是设置哪些用户可以访问哪些目录,向authz文件追加以下内容:
#设置[/]代表根目录下所有的资源
或者写成[repl:/]
hello = rw
意思是hello用户对repo测试库下所有的目录有读写权限,当然也可以限定。
如果是自己用,就直接是读写吧。
以上语句都必须顶格写, 左侧不能留空格, 否则会出错.
6.服务svnserve.conf配置
[root@admin conf]# vim svnserve.conf
追加以下内容:
#匿名访问的权限,可以是read,write,none,默认为read
anon-access=none
#使授权用户有写权限
auth-access=write
#密码数据库的路径
password-db=passwd
#访问控制文件
authz-db=authz
#认证命名空间,subversion会在认证提示里显示,并且作为凭证缓存的关键字
realm=/data/svn/repositories
以上语句都必须顶格写, 左侧不能留空格, 否则会出错.
7.启动svn服务
查看svn的服务是否启动
ps -ef|grep svn
如果没有启动执行 下面命令即可:
svnserve -d -r /data/svn/repo
--listen-port=3690
8.开启端口
/sbin/iptables -I INPUT -p tcp --dport 3690 -j ACCEPT
/etc/rc.d/init.d/iptables save
/etc/init.d/iptables restart
/etc/init.d/iptables status
svn://ip地址
端口默认为3690,输入配置好的用户名和密码即可。
注意:此处千万不能 svn://ip地址/repo,否则无法访问。
记住登录状态
重复输入密码}

我要回帖

更多关于 linux下svn服务器搭建 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信