Linux下svn的安装和使用(1)

来源:互联网 发布:如何去日本工作知乎 编辑:程序博客网 时间:2024/05/18 02:23


前言:

svn 我们平时小组开发,合作,都会用到,那么如何安装呢。今天我也是自己安装了一遍svn服务器,感觉蛮简单的。就记录下。


1. 下载 安装 

[root@localhost /]# yum install subversion

2. 查看是否安装成功 svn --version

root@localhost /]# svn --versionsvn,版本 1.6.11 (r934486)   编译于 Mar  6 2014,10:49:10版权所有 (C) 2000-2009 CollabNet。Subversion 是开放源代码软件,请参阅 http://subversion.tigris.org/ 站点。此产品包含由 CollabNet(http://www.Collab.Net/) 开发的软件。可使用以下的版本库访问模块: * ra_neon : 通过 WebDAV 协议使用 neon 访问版本库的模块。  - 处理“http”方案  - 处理“https”方案* ra_svn : 使用 svn 网络协议访问版本库的模块。  - 使用 Cyrus SASL 认证  - 处理“svn”方案* ra_local : 访问本地磁盘的版本库模块。  - 处理“file”方案[root@localhost /]# 

3. 建立SVN库

[root@localhost /]# mkdir -p /opt/svn/repos[root@localhost /]# svnadmin create /opt/svn/repos
执行上面的命令后,自动在repos下建立多个文件, 分别是conf, db,format,hooks, locks, README.txt。

4. 配置

进入上面生成的文件夹conf下,进行配置,   有以下几个文件authz, passwd, svnserve.conf
其中authz 是权限控制,可以设置哪些用户可以访问哪些目录,   passwd是设置用户和密码的,    svnserve是设置svn相关的操作。

4.1  先设置passwd

[users]# harry = harryssecret# sally = sallyssecrethello=123用户名=密码这样我们就建立了hello用户, 123密码 

4.2 再设置权限authz

[/]hello= rw意思是hello用户对所有的目录有读写权限,当然也可以限定。如果是自己用,就直接是读写吧。

4.3 最后设定snvserv.conf,去掉#

anon-access = none # 使非授权用户无法访问auth-access = write # 使授权用户有写权限password-db = passwordauthz-db = authz   # 访问控制文件realm = /opt/svn/repos # 认证命名空间,subversion会在认证提示里显示,并且作为凭证缓存的关键字。
 以上语句都必须顶格写, 左侧不能留空格, 否则会出错

5. 启动SVN

svnserve --/opt/svn/repos

[root@localhost locks]# svnserve -d -r /opt/svn/repos/

如果提示说端口已经被占用,说明已经启动了。如果想同一台服务器可以运行多个svnserver,可以这样:

[root@localhost /]# svnserve -d -r /opt/svn/repos --listen-port 3391


6 查看SVN服务是否已经启动

查看SVN进程:
[root@localhost locks]# ps -ef | grep svnroot      8490     1  0 18:06 ?        00:00:00 svnserve -d -r /opt/svn/repos/root     11393  3314  0 22:27 pts/0    00:00:00 grep svn
查看SVN 端口(3690)
[root@localhost locks]# netstat -tnl|grep 3690tcp        0      0 0.0.0.0:3690                0.0.0.0:*                   LISTEN  
表示启动成功。


7. iptables设置3690端口白名单,允许远程访问

这一步是最重要的,不然你在Linux上安装了SVN,结果在其他的windows机器上无法连接,问题基本是这里。

[root@localhost locks]# vi /etc/sysconfig/iptables# Firewall configuration written by system-config-firewall# Manual customization of this file is not recommended.*filter:INPUT ACCEPT [0:0]:FORWARD ACCEPT [0:0]:OUTPUT ACCEPT [0:0]-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT-A INPUT -p icmp -j ACCEPT-A INPUT -i lo -j ACCEPT-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT-A INPUT -j REJECT --reject-with icmp-host-prohibited-A FORWARD -j REJECT --reject-with icmp-host-prohibitedCOMMIT

将3690端口的加入其中:

-A INPUT -m state --state NEW -m tcp -p tcp --dport 3690 -j ACCEPT

加到倒数第二行前面:

# Firewall configuration written by system-config-firewall# Manual customization of this file is not recommended.*filter:INPUT ACCEPT [0:0]:FORWARD ACCEPT [0:0]:OUTPUT ACCEPT [0:0]-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT-A INPUT -p icmp -j ACCEPT-A INPUT -i lo -j ACCEPT-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT-A INPUT -m state --state NEW -m tcp -p tcp --dport 3690 -j ACCEPT-A INPUT -j REJECT --reject-with icmp-host-prohibited-A FORWARD -j REJECT --reject-with icmp-host-prohibitedCOMMIT

保存,然后重启 iptables 服务: service iptables restart

[root@localhost locks]# service iptables restartiptables:清除防火墙规则:                                 [确定]iptables:将链设置为政策 ACCEPT:filter                    [确定]iptables:正在卸载模块:                                   [确定]iptables:应用防火墙规则:                                 [确定][root@localhost locks]# 

8. svn客户端连接

svn服务器搭建好了。那么其他远程的机器就可以访问了。我们在windows安装的是tortoiseSVN客户端连接:

svn://192.168.0.104  是刚才安装SVN服务器的ip地址。



会弹出框,需要输入账户,密码,我们可以输入刚才创建的用户名密码:hello:123。成功。




就可以检出和导入文件了。


搞定。


0 0