SVN Server auf Raspberry Pi einrichten

SVN ist wirklich schnell eingerichtet, wenn man nicht jedes Mal nachschauen müsste wie es geht. ;-))

Auf dem Raspberry Pi klappt das bei mir wie folgt:

sudo apt-get install subversion

Dann das Verzeichnis anlegen in dem alle SVN-Repositories/Projekte abgelegt werden sollen (z.B. mkdir /home/pi/svn-repos).

Als nächstes wird in dem Verzeichnis das erste Projekt angelegt.

svnadmin create /home/pi/svn-repos/ErstesProjekt

Um auf das SVN-Repo zu zugreifen müssen moch die zulässigen User eingerichtet werden. Das erfolgt in der Datei /home/pi/svn-repos/ErstesProjekt/conf/svnserve.conf.

Dort setzt man die Variablen:

anon-access = none

auth-access = write

password-db = passwd

realm = Mein Erstes Projekt

Und editiert die Datei passwd im gleichen Verzeichnis. Dort trägt man gemäß der Vorgabe die Usernamen und Passworte für den Zugriff über svnserve ein.

Zum Starten und stoppen und weil das Paket selbst kein Start-Stop-Skript mitbringt eignet sich folgendes Skript, das in /etc/init.d/ abgelegt werden sollte

#!/bin/sh -e
### BEGIN INIT INFO
# Provides: subversion
# Required-Start: $network
# Required-Stop: $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start daemon at boot time
# Description: Enable service provided by daemon.
### END INIT INFO

test -f /usr/bin/svnserve || exit 0

OPTIONS="-d -T -r /home/pi/svn-repos --log-file /var/log/svn.log"

case "$1" in
start)
echo -n "Starting subversion daemon:"
echo -n " svnserve"
start-stop-daemon --start --quiet --oknodo --exec /usr/bin/svnserve -- $OPTIONS
echo "."
;;

stop)
echo -n "Stopping subversion daemon:"
echo -n " svnserve"
start-stop-daemon --stop --quiet --oknodo --exec /usr/bin/svnserve
echo "."
;;

reload)
;;

force-reload)
$0 restart
;;

restart)
$0 stop
$0 start
;;

*)
echo "Usage: /etc/init.d/svnserve(start|stop|reload|restart)"
exit 1
;;

esac

exit 0
Advertisements

String ersetzen mit der bash

Um Strings oder Teile eines Strings mit der bash zu ersetzen kann man folgende Funktion direkt im Shellskript verwenden:

${Heuhaufen/Nadel/NeueNadel}  <– ersetzt das erste Vorkommen von Nadel in Haystack durch NeueNadel

${Heuhaufen//Nadel/NeueNadel}  <– ersetzt alle Vorkommen von Nadel in Haystack durch NeueNadel. Man beachte den zweiten / nach Heuhaufen.

Bsp.:

echo ${Sonnenblumen/Sonnen/Eis} # ergibt Eisblumen

echo ${Sonnenblumen//n/m} # ergibt Sommemblumem

echo ${Weihnachtsbaum/baum}  # ergibt Weihnachts, da keine String zum Ersetzen angegeben wird, wird der Suchstring durch Nichts ersetzt und somit gelöscht.