Ubuntu 下 svn 服务器的安装配置

步骤一:安装 Subversion

sudo apt-get install subversion subversion-tools

步骤二:创建 SVN repos

sudo mkdir -p /srv/svn/repos
cd /srv/svn/repos
sudo svnadmin create my_repo
sudo chown -R svn:svn /srv/svn/repos

通常还需要手动修改my_repo/conf目录下的访问密码和仓库权限,我自己是按照Subversion说明手册配置里面的用户名和密码。此处为了便于测试可以先配置为允许客户端匿名读写仓库:修改conf/svnserve.conf[general]栏目下的第一条为anon-access = write即可允许匿名读写仓库。

步骤三:配置 systemd

推荐使用 Ubuntu 自带的 systemctl 工具启动 svnserve 守护进程

sudo systemctl enable svnserve.service

然后我们需要检查两个配置文件的内容,首先是/etc/systemd/system/multi-user.target.wants/svnserve.service

[Unit]
Description=Subversion protocol daemon
After=network.target

[Service]
Type=forking
EnvironmentFile=/etc/sysconfig/svnserve
User=svn
Group=svn
PIDFile=/var/run/svnserve/svnserve.pid
ExecStart=/usr/bin/svnserve --daemon --pid-file=/var/run/svnserve/svnserve.pid $SVNSERVE_OPTIONS
ExecStop=/usr/bin/killall svnserve
Restart=always

[Install]
WantedBy=multi-user.target

然后检查配置文件/etc/sysconfig/svnserve,其中定义了SVNSERVE_OPTIONS选项,默认值如下:

SVNSERVE_OPTIONS="-d -R -r /srv/svn/repos"

其中选项-R会强制只允许远程客户端读取,不允许写入SVN仓库。
我手动修改了脚本/etc/sysconfig/svnserve删掉此处的-R,修改之后变成:

SVNSERVE_OPTIONS="-d -r /srv/svn/repos"

步骤四:启动后台守护进程

sudo systemctl start svnserve.service

步骤五:测试 svn checkout 检出 svn://127.0.0.1/my_repo

cd /tmp
svn checkout svn://127.0.0.1/my_repo

其他可能遇到的问题

  • 检查 Ubuntu 主机防火墙是否允许访问 svnserve 端口 3690
  • 检查/var/run/svnserve目录是否已经自动创建,如果不存在请手动创建
sudo mkdir -p /var/run/svnserve
sudo chown -R svn:svn /var/run/svnserve

你可能感兴趣的:(Ubuntu 下 svn 服务器的安装配置)