#检查是否安装了低版本的SVN
[root@localhost ~]# rpm -qa subversion subversion-1.6.11-7.el6.x86_64
#卸载旧版本SVN
[root@localhost ~]# yum remove subversion
#安装SVN
[root@localhost Desktop]# yum install subversion Loaded plugins: fastestmirror, refresh-packagekit, security Loading mirror speeds from cached hostfile * base: mirrors.hustunique.com * extras: mirrors.hustunique.com * updates: mirrors.hustunique.com base | 3.7 kB 00:00 extras | 3.4 kB 00:00 updates | 3.4 kB 00:00 updates/primary_db | 4.4 MB 00:25 Setting up Install Process Resolving Dependencies --> Running transaction check ---> Package subversion.x86_64 0:1.6.11-9.el6_4 will be installed --> Finished Dependency Resolution Dependencies Resolved ================================================================================ Package Arch Version Repository Size ================================================================================ Installing: subversion x86_64 1.6.11-9.el6_4 updates 2.3 M Transaction Summary ================================================================================ Install 1 Package(s) Total download size: 2.3 M Installed size: 12 M Is this ok [y/N]: y Downloading Packages: subversion-1.6.11-9.el6_4.x86_64.rpm | 2.3 MB 00:15 warning: rpmts_HdrFromFdno: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 Importing GPG key 0xC105B9DE: Userid : CentOS-6 Key (CentOS 6 Official Signing Key) <centos-6-key@centos.org> Package: centos-release-6-3.el6.centos.9.x86_64 (@anaconda-CentOS-201207061011.x86_64/6.3) From : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 Is this ok [y/N]: y Running rpm_check_debug Running Transaction Test Transaction Test Succeeded Running Transaction Installing : subversion-1.6.11-9.el6_4.x86_64 1/1 Verifying : subversion-1.6.11-9.el6_4.x86_64 1/1 Installed: subversion.x86_64 0:1.6.11-9.el6_4 Complete!
#确认是否已安装svn模块
[root@localhost ~]# cd /etc/httpd/modules;ls | grep svn mod_authz_svn.so mod_dav_svn.so
#创建版本库
[root@localhost ~]# mkdir -p /opt/svn/myRespositories [root@localhost ~]# svnadmin create /opt/svn/myRepositories
#配置Subversion
#设置用户名与密码:用户名richard,密码:123456
[root@localhost ~]# vi /opt/svn/myRespositories/conf/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 richard=123456
#配置权限控制
root@localhost ~]# vi /opt/svn/myRespositories/conf/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 # [/foo/bar] # harry = rw # &joe = r # * = # [repository:/baz/fuz] # @harry_and_sally = rw # * = r [/] richard=rw
#服务配置
[root@localhost ~]# vi /opt/svn/myRespositories/conf/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 ### 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 ### This option specifies the authentication realm of the repository. ### If two repositories have the same authentication realm, they should ### have the same password database, and vice versa. The default realm ### is repository's uuid.
#修该其为版本库地址 realm = /opt/svn/myRespositories [sasl] ### This option specifies whether you want to use the Cyrus SASL ### library for authentication. Default is false. ### This section will be ignored if svnserve is not built with Cyrus ### SASL support; to check, run 'svnserve --version' and look for a line ### reading 'Cyrus SASL authentication is available.' # use-sasl = true ### These options specify the desired strength of the security layer ### that you want SASL to provide. 0 means no encryption, 1 means ### integrity-checking only, values larger than 1 are correlated ### to the effective key length for encryption (e.g. 128 means 128-bit ### encryption). The values below are the defaults. # min-encryption = 0 # max-encryption = 256
[root@localhost ~]#
#配置iptables端口
[root@localhost ~]# vi /etc/sysconfig/iptables # Generated by iptables-save v1.4.7 on Sat Jul 6 16:32:15 2013 *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [10:748] -A INPUT -p tcp -m tcp --dport 1521 -j ACCEPT -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT #加入这一句,将3690及svn默认使用的端口排除在外 -A INPUT -p tcp -m state --state NEW -m tcp --dport 3690 -j ACCEPT -A INPUT -j REJECT --reject-with icmp-host-prohibited -A FORWARD -j REJECT --reject-with icmp-host-prohibited COMMIT
#重启防火墙
[root@localhost ~]# service iptables restart
iptables: Flushing firewall rules: [ OK ]
iptables: Setting chains to policy ACCEPT: nat mangle filter [ OK ]
iptables: Unloading modules: [ OK ]
iptables: Applying firewall rules: [ OK ]
[root@localhost ~]#
#启动SVN
[root@localhost ~]# svnserve -d -r /opt/svn/myRepositories
#检测3690端口是否被占用
[root@localhost ~]# netstat -ln |grep 3690
tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN
#查看SVN进程
[root@localhost ~]# ps -ef|grep svn|grep -v grep root 5617 1 0 Sep13 ? 00:00:00 svnserve -d -r /opt/svn/myRepositories
#关闭SVN进程
[root@localhost ~]# killall svnserve