之前已经在树莓派上搭建了OpenMediaVault的NAS系统,但是里面的FTP对于代码提交和版本管理实在是太糟糕,所以决定在树莓派里再跑一个SVN吧。
首先安装SVN服务,执行如下命令:
apt install subversion
等待安装完成,之后我们进行svn的配置。首先创建版本库,这里我有多个项目,所以我需要创建多个版本库,但是我不想每个版本库都重复配置,这里我就使用多版本库使用一个配置文件的方式进行配置。找个地方放置版本库,我在/srv中创建一个svndata文件夹用于统一保存版本库,进入svndata中执行下面的命令:
svnadmin create Project1
svnadmin create Project2
执行命令后可以看见svndata目录下多了版本库的目录,然后进入任意一个版本库的目录中将conf目录移动到svndata目录下,然后把其余的版本库中的conf目录删除。进入svndata/conf可以看见有如下的文本。
首先修改svnserve.conf文件,找到下面四个条目,将之前的#号和空格都删除,并将anon-access = read修改为anon-access = none。
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
保存svnserve.conf文件,修改passwd文件配置帐号和密码。
在文件最后写入帐号=密码,例如:svn1 = 12345。svn1是帐号名,12345是密码。
保存passwd文件,修改authz文件进行权限配置。在文件的最后写入如下内容:
[/]
svn1 = rw
保存authz文件。
下面启动svn,多版本库使用一个配置文件的启动方式需要指定配置文件的位置,命令如下:
svnserve -d -r /srv/svndata --config-file=/srv/svndata/conf/svnserve.conf
然后使用
ps -ef | grep svn
查看是否已经运行。 问题又来了,这样每次树莓派启动都要执行这个命令,太烦。这个必须要自动启动。网上的方法都是去修改/etc/rc.local文件,但是我改了就是没有用。于是我又写了个service文件,命名为svnsvr.service,保存到/etc/systemd/system目录下。文件内容如图:
执行命令
systemctl enable svnsvr.service --now
然后重启树莓派测试发现svn已经自动启动。
客户端连接的时候地址格式如下:
svn://SVN服务器IP地址/Project1
svn://SVN服务器IP地址/Project2