top of page
  • AutorenbildOliver Schwerttner

Subversion Teil 1: Server (deamon) installieren

Aktualisiert: 18. Apr. 2023

Nachfolgend wird beschrieben, wie man einen Subversion Server (svnserve) als eigenständigen Deamon installiert (ohne Apache Webserver).


Diese Art der Installation wird idR. innerhalb von Unternehmenskonfigurationen verwendet, ua. weil sich der SVN-Deamon dann speziell auf die Server-Hardware anpassen lässt (Stichwort Thread-Management) und weil man den SVN-Deamon so auch an LDAP bzw. Active Directory Server anbinden kann. Des weiteren kann man auch bzgl. der Verschlüsselung zw. SVN-Clients und SVN-Server per "SASL" sehr umfangreiche Konfigurationen definieren und man spart sich die Installation und Konfiguration des Apache Webservers.


Subversion (Client und Server) runterladen

# apt install subversion

Danach sollten folgende Dateien vorhanden sein:


Service-User erstellen

# adduser --system --no-create-home --group svn

SVN Home-Verzeichnis erstellen und Rechte vergeben

# mkdir /var/lib/svn
# cd /var/lib/svn
# chown -R svn:svn /var/lib/svn
# chmod -R g+rws /var/lib/svn

SVN Server zum Testen manuell starten

# svnserve -d -r /var/lib/svn

Default Port 3690 überprüfen

# ss -ltn

SVN Deamon Prozess manuell beenden

# pkill svnserve

Im Service-Verzeichnis die Datei "/etc/systemd/system/svn.service" erstellen und den folgenden Text hinzufügen:

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

[Service]
Type=forking
RuntimeDirectory=svnserve
PIDFile=/run/svnserve/svnserve.pid
EnvironmentFile=/etc/default/svnserve
ExecStart=/usr/bin/svnserve $DAEMON_ARGS
User=svn
Group=svn
KillMode=control-group
Restart=on-failure

[Install]
WantedBy=multi-user.target

Datei "/etc/default/svnserve" erstellen und folgenden Text hinzufügen

# svnserve options
DAEMON_ARGS="--daemon --pid-file /run/svnserve/svnserve.pid --root /var/lib/svn --log-file /var/log/svnserve/svnserve.log"

Rechte für Default-Datei setzen

# chown -R svn:svn /etc/default/svnserve

Verzeichnisse für das Logging und die Prozess ID Datei erstellen

# mkdir -p /var/log/svnserve; chown -R svn:svn /var/log/svnserve
# mkdir -p /run/svnserve; chown -R svn:svn /run/svnserve

Datei "/etc/logrotate.d/svnserve" erstellen und folgenden Text hinzufügen

/var/log/svnserve/*.log {
    daily
    missingok
    rotate 14
    compress
    notifempty
    create 640 svn adm
    sharedscripts
    postrotate
            if /bin/systemctl status svnserve > /dev/null ; then \
                /bin/systemctl restart svnserve > /dev/null; \
            fi;
    endscript
}

Um den SVN-Dienst beim Serverstart automatisch zu starten, gibt man einmalig folgenden Befehl ein:

# systemctl enable svn.service

Mit folgenden Befehlen kann man den Dienst manuell kontrollieren

# systemctl start svn.service
# systemctl stop svn.service
# systemctl restart svn.service

In der Firewall den Port 3690 freischalten

# ufw allow 3690
# ufw status

Zum Abschluss nochmal den Port 3690 überprüfen

# ss -ltn
 

Dieser Artikel beschreibt nur die wichtigsten Punkte. Eine ausführliche Dokumentation zu Subversion findet man im offiziellen Buch "Subversion" von RedBean, das auch kostenlos online verfügbar ist.


Weitere Informationen findet man auf der offiziellen Subversion Webseite von Apache, welches Subversion entwickelt und verwaltet.

36 Ansichten0 Kommentare

Aktuelle Beiträge

Alle ansehen
left.jpg
bottom of page