Ubuntu 18.04 VM 安装配置SVN

Host: Windows 10, VM: Ubuntu Desktop 18.04 LTS.
主要参照此网页,介绍了如何在Ubuntu 18.04机器上安装和配置SVN:
https://www.itzgeek.com/how-tos/linux/ubuntu-how-tos/how-to-install-apache-svn-on-ubuntu-18-04.html

但是因为我使用的是Ubuntu VM,而且Ubuntu VM默认并没有安装SSH服务,所以需要先做一下准备工作。

1. 运行VM并登录进去, 安装SSH服务 sudo apt install ssh。
2. 运行ifconfig来获取VM的ip 地址, 我试了几次,默认生成的VM里ip地址总是10.0.2.15. 这个ip稍后进行端口映射时会用到。
3. 退出VM结束它运行。

在VirtualHost的VM设置里,将VM的两个端口(22 SSH, 80 HTTP) 映射到Host,具体如下图,这里我分别映射到了host的220和800端口。Guest IP 在前面已经获取。 然后以headless方式启动VM,速度会快不少。再从主机使用Putty进行SSH登录,就可以完全从主机运行了。

接下来就可以进行安装和配置SVN的各种操作了。

  1. 更新安装库:
    sudo apt-get update
  2. 安装 apache网络服务器:
    sudo apt-get install -y apache2 ,
    安装完毕后,从host主机的浏览器里输入127.0.0.1:800应该能打开Apache2 demo页面。
  3. 安装svn:
    sudo apt-get install -y subversion subversion-tools libapache2-mod-svn.
  4. 配置SVN:
    首先选择一个路径以指定svn的根路径,进入此svn目录,运行命令创建svn repo:
    svnadmin create development

    然后需要修改整个svn文件夹的owner是www-data,这样Apache才可以访问该路径。这里我在当前用户目录下创建一个目录svn. :
    sudo chown -R www-data:www-data svn
  5. 配置svn以支持apache访问,编辑如下文件:
    sudo nano /etc/apache2/mods-enabled/dav_svn.conf,
    使它包含如下内容:
    <Location /svn>
         DAV svn
    #SVNPath /home/chuantao/svn/development SVNParentPath /home/chuantao/svn/ AuthType Basic AuthName "Subversion Repository" AuthUserFile /etc/apache2/dav_svn.passwd Require valid-user </Location>

    然后运行htpasswd命令来创建登录用户名和密码,稍后从host浏览器访问svn server时需要使用。
    sudo htpasswd -cm /etc/apache2/dav_svn.passwd czang
    (-c Create new file, -m Forced MD5 encrytion of the passwd)

  6. 重启apache2 service:
    sudo service apache2 restart。
  7. 打开host的浏览器,输入127.0.0.1:800/svn/development,输入用户名和密码就可以访问了。到此为止SVN搭建完毕。
  8. 如果有从别的SVN hotcopy出来的备份文件,此时可以把此备份文件(和development有相似文件结构)复制到此SVN目录下,并修改owner,则就可以直接使用了。
  9. 删除一个repo,直接在svn这个目录下rm -rf repo就可以了,必要的时候sudo。
  10. 解压一个tar文件到指定路径:
    tar -C path -xvf file.tar
  11. 然后修改文件夹名字,以及将owner修改为www-data,就可以了。