Linux搭建SVN服务器详细教程

Linux搭建SVN服务器详细教程

在 Linux 系统上搭建 SVN(Subversion)服务器 是一个常见的版本控制需求,适用于团队协作和代码管理。以下是详细的搭建教程,包括安装、配置和使用。

1. 前置条件

服务器环境:

一台已安装 Linux 系统的服务器(如 CentOS、Ubuntu 或 Debian 等)。

拥有超级用户(root)权限或 sudo 权限。

网络要求:

确保服务器可以连接到互联网(用于安装软件包)。

开放 SVN 使用的端口(默认端口为 3690)。

2. 安装 SVN

2.1 在 CentOS/RHEL 上安装

使用 yum 安装 Subversion:

bash

sudo yum install -y subversion

检查是否安装成功:

bash

svnserve --version

正常输出会显示 Subversion 的版本号。

2.2 在 Ubuntu/Debian 上安装

使用 apt 安装 Subversion:

bash

sudo apt update

sudo apt install -y subversion

检查是否安装成功:

bash

svnserve --version

3. 创建 SVN 仓库

创建存放 SVN 仓库的目录:

bash

sudo mkdir -p /svn/repositories

创建一个新的 SVN 仓库:

bash

sudo svnadmin create /svn/repositories/myrepo

myrepo 是仓库的名称,可以根据需要替换。

设置仓库目录的权限:

bash

sudo chown -R svn:svn /svn/repositories

sudo chmod -R 770 /svn/repositories

4. 配置 SVN 仓库权限

仓库的配置文件位于 /svn/repositories/myrepo/conf/ 目录下:

4.1 配置用户和密码

编辑 passwd 文件,添加用户和密码:

bash

sudo nano /svn/repositories/myrepo/conf/passwd

添加类似以下内容:

plaintext

[users]

admin = adminpassword

user1 = user1password

user2 = user2password

4.2 配置用户访问权限

编辑 authz 文件,设置用户的访问权限:

bash

sudo nano /svn/repositories/myrepo/conf/authz

添加类似以下内容:

plaintext

[groups]

developers = admin, user1, user2

[/]

@developers = rw

* =

rw:读写权限。

r:只读权限。

*:表示所有其他用户。

4.3 配置 SVN 服务

编辑 svnserve.conf 文件,启用用户认证:

bash

sudo nano /svn/repositories/myrepo/conf/svnserve.conf

取消以下行的注释并设置为:

plaintext

[general]

anon-access = none

auth-access = write

password-db = passwd

authz-db = authz

realm = My First SVN Repository

anon-access:匿名用户的权限,none 表示不允许匿名访问。

auth-access:认证用户的权限,write 表示允许读写。

password-db:指定用户密码文件。

authz-db:指定权限控制文件。

5. 启动 SVN 服务

5.1 启动 SVN 服务

运行以下命令启动 SVN 服务:

bash

sudo svnserve -d -r /svn/repositories

-d:以守护进程方式运行。

-r:指定 SVN 仓库的根目录。

5.2 检查 SVN 服务是否启动

使用以下命令检查是否启动成功:

bash

ps -ef | grep svnserve

5.3 设置开机自启

编辑 /etc/rc.d/rc.local 文件,添加启动命令:

bash

sudo echo "svnserve -d -r /svn/repositories" >> /etc/rc.d/rc.local

sudo chmod +x /etc/rc.d/rc.local

6. 测试 SVN 服务

6.1 本地测试

在服务器上测试 SVN 是否正常工作:

bash

svn list svn://localhost/myrepo

输入用户名和密码后,如果能看到仓库内容,说明服务正常。

6.2 远程测试

在客户端上,使用以下命令测试连接:

bash

svn list svn://<服务器IP>/myrepo

例如:

bash

svn list svn://192.168.1.100/myrepo

7. 配置防火墙

确保服务器开放 3690 端口,否则客户端无法访问。

7.1 在 CentOS 上开放端口

bash

sudo firewall-cmd --add-port=3690/tcp --permanent

sudo firewall-cmd --reload

7.2 在 Ubuntu/Debian 上开放端口

bash

sudo ufw allow 3690/tcp

sudo ufw reload

8. 常见问题及解决方法

8.1 问题:无法连接 SVN 仓库

原因:服务未启动或防火墙未开放端口。

解决方法:

确认服务已启动:

bash

ps -ef | grep svnserve

确认防火墙端口已开放。

8.2 问题:权限不足

原因:用户没有正确的权限。

解决方法:

检查 authz 文件中的权限设置。

确保用户名和密码正确。

8.3 问题:启动服务时提示地址被占用

原因:端口冲突。

解决方法:

检查端口占用:

bash

netstat -tulnp | grep 3690

杀掉冲突进程或修改 SVN 使用的端口。

9. 客户端使用 SVN

9.1 SVN 命令行客户端

安装客户端:

Ubuntu/Debian:

bash

sudo apt install -y subversion

CentOS:

bash

sudo yum install -y subversion

检出代码:

bash

svn checkout svn://<服务器IP>/myrepo

提交代码:

bash

svn commit -m "提交说明"

10. 总结

安装和配置:

安装 subversion 软件包。

创建 SVN 仓库并配置用户和权限。

启动和测试:

启动 SVN 服务并测试连接。

确保防火墙端口 3690 已开放。

客户端使用:

使用 SVN 客户端操作仓库(如检出代码、提交代码等)。

通过以上步骤,您可以在 Linux 服务器上成功搭建 SVN 服务器,并为团队提供高效的版本控制服务。

相关推荐

长城电源怎么质保?
beat365安卓版

长城电源怎么质保?

📅 08-16 👁️ 9986
Exchange Online中的邮件跟踪常见问题解答
数字365吉凶

Exchange Online中的邮件跟踪常见问题解答

📅 07-13 👁️ 8435
惊喜连连 俄罗斯世界杯成“纪录粉碎机”
365bet注册网址

惊喜连连 俄罗斯世界杯成“纪录粉碎机”

📅 07-09 👁️ 5307