Debian-Subversion

Debian-Subversion

Debian(10.0, 64位)下安装Subversion(SVN)的过程

  • root 权限 ,执行apt-get install subversion 安装,过程中提示(y/n):键盘输入 Y
  • 创建SVN路径: mkdir /var/svn 设置/var/svn/为目录
  • 在(/var/svn)目录下: mkdir /var/svn/Java-Code创建项目文件夹
  • svnadmin create /var/svn/Java-Code/ 创建svn仓库
  • svnserve -d -r /var/svn 启动svn服务,并指定svn存储路径

注意 :
svn服务器默认使用3690端口号,svn要使用非默认端口,可以在svnserve后面加一个 --listen-port 3690 来修改svn使用的端口号 svnserve -d -r /var/svn --listen-port 3690

-anptlu | grep 3690 查看端口
ps -ef|grep svn|grep -v grepps aux|grep svn 查看进程


统一管理权限文件

默认情况下每个项目都是独立的权限控制,但是在实际应用中,通常所有的项目都会共用一套权限控制方案,所以我们需要将两个文件拷贝出来放到其他地方去 authz , passwd
1. cp /var/svn/Java-Code/conf/authz /etc/svn/
2. cp /var/svn/Java-Code/conf/passwd /etc/svn/
以上两句话是把项目下/conf的authz和passwd复制到 /etc/svn文件夹中

  • 编辑 /etc/svn/authz 在末尾 添加
    [/]                     # 任何路径
    jack = rw         # 用户名 = rw 可读写权限

  • 编辑 /etc/svn/passwd 在末尾 添加
    user = 123456 # 用户名和密码

  • 编辑 /var/svn/Java-Code/conf/svnserve.conf
    把[general]下面注释掉的key打开并修改:(务必把空格去掉)

    anon-access = none # 匿名用户不可访问
    auth-access = write # 权限
    password-db = /etc/svn/passwd # 路径
    authz-db = /etc/svn/authz # 路径


设置开机启动

/etc/init.d 路径下创建文件名为subversion

#!/bin/sh
 
### BEGIN INIT INFO
# Provides:          subversion
# Required-Start:    $local_fs $remote_fs $network $syslog
# Required-Stop:     $local_fs $remote_fs $network $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: starts the subversion daemon
# Description:       starts subversion using start-stop-daemon
### END INIT INFO
 
# sudo svnserve -d -r /var/svn/Java-Code
# http://www.everville.de/pages/howtos/linux/svnserve/index.html
 
# start/stop subversion daemon
 
test -f /usr/bin/svnserve || exit 0
 
# 这里是svnserve执行的参数,/var/svn/改为你自己的版本库地址
OPTIONS="-d -T -r /var/svn/"
 
case "$1" in
    start)
        echo -n "Starting subversion daemon:"
        echo -n " svnserve"
        # 这里的root:root为member:group,即用户:组名,改为适合你自己的
        start-stop-daemon --start --quiet --oknodo --chuid root:root --exec /usr/bin/svnserve -- $OPTIONS
        echo "."
        ;;
 
    stop)
        echo -n "Stopping subversion daemon:"
        echo -n " svnserve"
        start-stop-daemon --stop --quiet --oknodo --exec /usr/bin/svnserve
        echo "."
        ;;
 
    reload)
        ;;
 
    force-reload)
    $0 restart
        ;;
 
    restart)
    $0 stop
    $0 start
        ;;
 
    *)
        echo "Usage: /etc/init.d/subversion (start|stop|reload|restart)"
        exit 1
        ;;
 
esac
 
exit 0

把上面代码复制到subversion脚本

添加执行属性 : chmod u+x /etc/init.d/subversion
添加启动项 : update-rc.d /etc/init.d/subversion defaults
开启 /etc/init.d/subversion start


重启 svn 服务

执行 killall svnserve

查看 svn 版本

执行 svnserve --version

其他

在 /etc/init.d/ 创建ptables 脚本 ,并复制以下代码

# 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 -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8009 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8081 -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-prohibited
COMMIT

权限 chmod u+x /etc/init.d/iptables

/etc/init.d/iptables restart 重启防火墙使配置生效

iptables -A INPUT -p tcp --dport 3690 -j ACCEPT 可直接执行插入端口命令

访问地址: svn://ip地址:端口号/Java-Code

  • svn://10.10.10.10:234/Java-Code

1700013 错误

检查 authz 文件

1700001 错误

检查passwd文件
svnserve.conf 修改时务必把空格去掉

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。