If you would like to use the latest version of Subversion and prefer using the package manager like me, the following steps below will enable you to install Subversion 1.9 from the WanDisco repositories. At the time of writing, the latest version in the WanDisco repo is 1.9.2.
1 |
#!/bin/bash |
2 |
# download the GPG key of the repository and add it to apt: |
3 |
wget http://opensource.wandisco.com/wandisco-debian.gpg -O /tmp/wandisco-debian.gpg |
4 |
# add downloaded key to apt |
5 |
apt-key add /tmp/wandisco-debian.gpg |
6 |
# create apt sources file for wandisco repo |
7 |
echo "deb http://opensource.wandisco.com/debian/ jessie svn19" > /etc/apt/sources.list.d/wandisco.sources.list |
8 |
# update apt and upgrade packages |
9 |
apt-get update ; apt-get install subversion subversion-tools |
It is important to note that the subversion install on Debian Jessie does not include a systemd start script for svnserve. This problem can easily be solved with the service start script provided below. Create an executable file at /etc/init.d/svnserve
with the contents below. Note the OPTIONS
line in the script below will need to be updated to reflect your specific environment.
1 |
#!/bin/sh -e |
2 |
### BEGIN INIT INFO |
3 |
# Provides: subversion |
4 |
# Required-Start: $network |
5 |
# Required-Stop: $network |
6 |
# Default-Start: 2 3 4 5 |
7 |
# Default-Stop: 0 1 6 |
8 |
# Short-Description: Start daemon at boot time |
9 |
# Description: Enable service provided by daemon. |
10 |
### END INIT INFO |
11 |
12 |
test -f /usr/bin/svnserve || exit 0 |
13 |
14 |
OPTIONS= "-d -T -r /srv/svn --log-file /var/log/svn.log" |
15 |
16 |
case "$1" in |
17 |
start) |
18 |
echo -n "Starting subversion daemon:" |
19 |
echo -n " svnserve" |
20 |
start-stop-daemon --start --quiet --oknodo --chuid www-data:www-data -- exec /usr/bin/svnserve -- $OPTIONS |
21 |
echo "." |
22 |
;; |
23 |
24 |
stop) |
25 |
echo -n "Stopping subversion daemon:" |
26 |
echo -n " svnserve" |
27 |
start-stop-daemon --stop --quiet --oknodo -- exec /usr/bin/svnserve |
28 |
echo "." |
29 |
;; |
30 |
31 |
reload) |
32 |
;; |
33 |
34 |
force-reload) |
35 |
$0 restart |
36 |
;; |
37 |
38 |
restart) |
39 |
$0 stop |
40 |
$0 start |
41 |
;; |
42 |
43 |
*) |
44 |
echo "Usage: /etc/init.d/svnserve(start|stop|reload|restart)" |
45 |
exit 1 |
46 |
;; |
47 |
48 |
esac |
49 |
50 |
exit 0 |
Once your script is in place and set as executable, you can test it with the command below. Assuming your test succeeds, you can then instruct systemd to start the service at boot time.
1 |
# Test our new svnserve service |
2 |
/etc/init.d/svnserve start |
3 |
# Enable at boot in systemd |
4 |
update-rc.d svnserve enable |