在Linux服务器上安装Subversion(SVN)版本控制系统,可以为企业或团队提供高效的代码管理和版本追踪功能,以下是详细的安装步骤和配置过程,以CentOS 7系统为例,其他发行版如Ubuntu可参考类似流程调整命令。
安装前的准备
首先确保服务器已更新系统软件包,并安装必要的编译工具,执行以下命令:
sudo yum update -y sudo yum install -y gcc make
若使用Ubuntu系统,可替换为:
sudo apt update && sudo apt upgrade -y sudo apt install -y build-essential
安装SVN服务
SVN可通过官方源或第三方仓库安装,推荐使用yum/apt直接安装,以简化流程:
- CentOS系统:
sudo yum install -y subversion
- Ubuntu系统:
sudo apt install -y subversion
安装完成后,验证版本:
svnserve --version
创建SVN仓库
-
创建仓库目录
例如在/var/svn下创建项目仓库:sudo mkdir -p /var/svn/project1 sudo svnadmin create /var/svn/project1
-
设置仓库权限
确保SVN进程有读写权限:sudo chown -R apache:apache /var/svn/project1 # 若使用Apache集成 sudo chmod -R 770 /var/svn/project1
配置SVN服务
SVN默认通过svnserve提供服务,需修改配置文件:
-
编辑仓库配置
进入仓库conf目录,修改svnserve.conf:sudo nano /var/svn/project1/conf/svnserve.conf
取消以下行注释并修改:
[general] anon-access = none # 禁止匿名访问 auth-access = write # 允许认证用户写 password-db = passwd # 密码文件路径 authz-db = authz # 权限控制文件路径 realm = My SVN Repository # 仓库名称
-
创建用户和权限
-
编辑
passwd文件添加用户:sudo nano /var/svn/project1/conf/passwd
(格式:
用户名 = 密码):[users] user1 = password123 user2 = password456
-
编辑
authz文件设置权限:sudo nano /var/svn/project1/conf/authz
示例配置:
[groups] admin = user1 developers = user1, user2 [/] @admin = rw * = r
-
启动SVN服务
-
启动并设置开机自启
sudo svnserve -d -r /var/svn --listen-port 3690 # 后台运行,指定根目录和端口 sudo systemctl enable svnserve # CentOS系统 sudo systemctl start svnserve
Ubuntu系统需先创建服务文件:
sudo nano /etc/systemd/system/svnserve.service ```后执行: ```bash sudo systemctl daemon-reload sudo systemctl enable --now svnserve
-
检查服务状态
sudo netstat -tuln | grep 3690
客户端连接测试
使用SVN客户端(如TortoiseSVN或命令行)连接:
svn checkout svn://服务器IP:3690/project1
输入配置的用户名和密码即可完成检出。
常见问题解决
- 权限问题:确保
svnserve运行用户对仓库目录有权限,可尝试调整selinux设置。 - 端口冲突:若3690端口被占用,可通过
--listen-port指定其他端口。 - 无法连接:检查防火墙规则,开放3690端口:
sudo firewall-cmd --permanent --add-port=3690/tcp sudo firewall-cmd --reload
相关问答FAQs
Q1: 如何修改SVN仓库的默认端口?
A1: 启动SVN服务时使用--listen-port参数指定新端口,例如svnserve -d -r /var/svn --listen-port 8080,同时需在防火墙开放新端口,并确保客户端连接时使用新端口号。
Q2: SVN如何与Apache集成实现Web访问?
A2: 需安装mod_dav_svn模块,配置Apache虚拟主机指向SVN仓库,并启用HTTP基本认证,具体步骤包括:安装模块、编辑httpd.conf添加<Location>块,配置SVNListParentPath和SVNPath,重启Apache服务,集成后可通过http://服务器IP/svn/project1访问仓库。
