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 grep
和ps 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 修改时务必把空格去掉