1. 安装Subversion软件包

不同的Linux发行版使用不同的包管理器来安装Subversion,以下是一些常见的发行版和相应的安装命令:

| 发行版 | 安装命令 |

|-|-|

| Ubuntu / Debian | `sudo apt-get install subversion` |

| CentOS / Fedora / RHEL | `sudo yum install subversion` |

| Arch Linux / Manjaro | `sudo pacman -S subversion` |

2. 创建版本库目录

例如,在`/data/svn`目录下创建一个名为`repo`的版本库目录:

bash

mkdir -p /data/svn/repo

3. 配置版本库

使用`svnadmin`命令创建版本库:

bash

svnadmin create /data/svn/repo

执行该命令后,会在`/data/svn/repo`文件夹下生成`conf`、`db`、`format`、`hooks`、`locks`、`README.txt`等文件,说明一个SVN库已经建立。

4. 用户密码`passwd`配置

进入版本库的`conf`目录,编辑`passwd`文件:

bash

cd /data/svn/repo/conf

vim passwd

在`[users]`下添加用户和密码,格式为:`用户名=密码`,例如:

[users]

hello=123

5. 权限控制`authz`配置

编辑`authz`文件,设置哪些用户可以访问哪些目录:

bash

vim authz

向`authz`文件追加以下内容:

[/]

hello = rw

这表示`hello`用户对`repo`测试库下所有的目录有读写权限。

6. 服务`svnserve.conf`配置

编辑`svnserve.conf`文件:

bash

vim svnserve.conf

追加以下内容:

[general]

anon-access=none

auth-access=write

password-db=passwd

authz-db=authz

realm=/data/svn/repositories

7. 启动svn服务

查看svn的服务是否启动:

bash

ps -ef|grep svn

如果没有启动,执行下面命令:

bash

svnserve -d -r /data/svn/repo --listen-port=3690

8. 开启端口

如果是在有防火墙的环境下,需要开启3690端口,例如在CentOS系统中:

bash

/sbin/iptables -I INPUT -p tcp --dport 3690 -j ACCEPT

/etc/rc.d/init.d/iptables save

/etc/init.d/iptables restart

/etc/init.d/iptables status

9. 访问

Linux安装SVN的步骤与注意事项

通过`svn://ip地址`访问,端口默认为3690,输入配置好的用户名和密码即可。注意此处千万不能`svn://ip地址/repo`,否则无法访问。

二、Linux安装SVN的注意事项

1. 安装前检查系统环境

  • 确认Linux系统的版本,不同版本在软件包安装和管理上可能不同,例如Debian系列用`apt`命令,Red Hat系列用`yum`命令安装软件包。
  • 确保系统有足够的硬盘空间,以保证安装过程顺利进行。
  • 系统的网络配置要稳定,因为安装过程可能需要从网络下载软件包。
  • 建议在安装前更新系统,例如在Debian和Ubuntu系统上,可以使用`sudo apt-get update`命令。
  • 2. 配置文件的注意事项

  • 在配置`svnserve.conf`、`passwd`和`authz`文件时,每行不能以空格开始,且等号两端要有一个空格,否则可能导致配置出错。
  • 更改`svnserve.conf`时需要重启SVN服务才生效,更改`authz`和`passwd`文件时则不需要重启服务。
  • 3. 启动与停止服务的注意事项

  • 启动SVN服务的命令为`svnserve -d -r /data/svn/repo`,其中`-d`表示守护进程,`-r`表示在后台执行。
  • 停止SVN服务可以使用`killall svnserve`命令,或者通过杀死进程(默认端口为3690),即先通过`ps -ef|grep svnserve`找到进程号,然后使用`kill -9 [进程号]`命令。
  • 4. 访问服务的注意事项

  • 如果是在云服务器上,例如阿里云服务器,需要在安全组中配置开放3690端口,否则可能无法访问SVN服务。
  • 如果是在有防火墙的服务器上,需要在防火墙中开放3690端口,例如在CentOS系统中,可以使用`firewall-cmd --zone=public --add-port=3690/tcp --permanent`命令开放TCP端口,然后使用`firewall-cmd --reload`命令重新加载防火墙规则。