[Howto] Subversion auf einem QNAP TS-409 PRO

  • Die folgende Anleitung beschreibt die Installation und Konfiguration (inkl. "Autostart") eines Subversion-Servers auf einem QNAP TS-409 PRO.


    Voraussetzungen für die Installation:



    * SSH-Zugriff (z.B. mit Putty)
    * Zugriff auf die Webadministrationsoberfläche
    * Das Paketmangement-System Optware-ipkg


    Schritt 1: Optware-ipkg herunterladen und installieren
    Das Paket kann als ZIP-Datei unter der oben verlinkten URL heruntergeladen werden. Nach dem Herunterladen muss die ZIP-Datei lokal auf dem Rechner entpackt werden. Entpackt findet man dann eine Datei mit einem ähnlichen Dateinamen wie diesem: Optware-ipkg_0.99.163_TS-409.qpkg (je nach Version unterschiedlich).
    Die Installation erfolgt über die Webadministrationsoberfläche. Dazu unter Systemwerkzeuge -> Systemaktualisierung über den Button Durchsuchen die zuvor entpackte Datei auswählen und anschließend auf System aktualisieren klicken.
    Zum Abschluss der Aktualisierung den QNAP-Server neustarten.


    Schritt 2: Subversion-Server installieren
    Per SSH auf dem QNAP TS-409 PRO einloggen und Subversion installieren.

    Code
    ipkg install svn


    Schritt 3: Verzeichnisse anlegen für Konfigurationsdateien und Repositories
    Zu den Verzeichnissen ist zu sagen, dass jeder Nutzer die Benennung und den Ort, an dem die Verzeichnisse angelegt werden, frei wählen kann. Die Pfade müssen dann im Folgenden entsprechend angepasst werden. Grundsätzlich empfiehlt es sich, das Verzeichnis nicht auf ein freigegebenes Netzlaufwerk zu legen (Manipulationsmöglichkeit durch andere Benutzer, sodass das Repository ggf. zerstört wird.)


    Code
    mkdir /share/MD0_DATA/subversionmkdir /share/MD0_DATA/subversion/repositories


    Die Rechte für die Verzeichnisse kann man nach Bedarf anpassen. Standard auf der TS-409 PRO ist Vollzugrifffür alle:


    Code
    chmod 777 /share/MD0_DATA/subversionchmod 777 /share/MD0_DATA/subversion/repositories


    Schritt 4: Ein Repository erzeugen

    Code
    cd /share/MD0_DATA/subversion/repositoriessvnadmin create --fs-type fsfs repo1


    Schritt 5: Zugriff (Benutzer und Rechte) für das Repository konfigurieren
    Für die folgenden Schritte benötigt man einen Editor. Auf dem QNAP ist vi installiert. Ich kann hier an der Stelle den Editor nano empfehlen (ipkg install nano). Falls kein nano zur Verfügung steht einfach im Folgenden nano durch vi ersetzen.


    Im Verzeichnis /share/MD0_DATA/subversion/repositories/repo1/conf befinden sich die Dateien svnserve.conf und passwd. Hier werden die Zugriffsrechte und Benutzer sowie Kennwörter verwaltet.


    An dieser Stelle gibt es zwei Möglichkeiten:


    * Anpassen der beiden Dateien für das Repository und später für jedes weitere neu angelegte Repository.
    * Erstellen einer svnserve.conf und passwd die für alle Repositories verwendet werden.


    Hier wird der zweite weg gewählt.

    Code
    cd /share/MD0_DATA/subversionnano svnserve.conf


    Die Datei editieren und speichern:

    Code
    [general]# anon-access = readauth-access = writeanon-access = nonepassword-db = passwd# authz-db = authzrealm = Mein Realm


    Hierbei ist der anonyme Zugriff verboten, nur authorisierte Benutzer haben Zugriff. Die Benutzernamen und Kennwörter werden in der Datei passwd verwaltet. Diese liegt in diesem Beispiel im selben Verzeichnis wie die svnserve.conf. (Es kann aber auch ein beliebiger absoluter Pfad oder ein Pfad relativ zur svnserve.conf angegeben werden.)


    Code
    nano passwd


    Auch diese Datei wie gewünscht editieren und dann abspeichern.


    Code
    [users]benutzername = meinKennwort



    Schritt 6: Start des Subversion-Servers
    Mit folgendem Befehl kann man den Subversion-Server starten:

    Code
    svnserve -d --listen-port=4321 --root /share/MD0_DATA/subversion/repositories --config-file /share/MD0_DATA/subversion/svnserve.conf


    Bei --listen-port kann ein freier Port ausgewählt werden. Lässt man den Parameter --listen-port=4321 wird der Standard-Port 3690 verwendet.
    Nach jedem Neustart des QNAP muss der Subversion-Server mit dem oben genannten Befehl gestartet werden. Eine Alternative ist der automatische Start über ein Skript beim Systemstart.


    Dazu wie folgt das Start-Skript erstellen:

    Code
    nano /share/MD0_DATA/subversion/startsvn.sh


    Bash
    #!/bin/shSVNSERVE=/share/MD0_DATA/optware/opt/bin/svnservePARAMS="-d"PORT="--listen-port=4321" #default 3690SVN_REPOS_PATH="--root /share/MD0_DATA/subversion/repositories"CONFIG_FILE="--config-file /share/MD0_DATA/subversion/svnserve.conf"test -f $SVNSERVE || exit 0case "$1" in    start)        echo -n "Starting svnserve services: "        $SVNSERVE $PARAMS $PORT $SVN_REPOS_PATH $CONFIG_FILE        echo " svnserve started."        ;;    stop)        echo -n "Shutting down svnserve:"        /usr/bin/killall svnserve        echo " svnserve stopped."        ;;    restart)        $0 stop        $0 start        ;;    *)        echo "Usage: /etc/init.d/svnserve.sh {start|stop|restart}"        exit 1esacexit 0


    Das Skript speichern. Wichtig: Das Skript muss ausführbar sein!

    Code
    chmod +x /share/MD0_DATA/subversion/startsvn.sh


    Damit das Skript nach dem Start des QNAP auch ausgeführt wird muss noch die Datei /etc/config/qpkg.conf bearbeitet werden. Hier befindet sich mindestens ein Eintrag für das Optware-ipkg-Paket. Datei mit Nano öffnen und am Ende Folgendes hinzufügen (Wichtig: Der Punkt Name darf keine Leer- oder Sonderzeichen enthalten, er wird verwendet, um beim Bootvorgang automatisch sogenannte Initscripte zu erzeugen.)


    Code
    [subversion svnserve]Name = Subversion_svnserveDate = 2009-01-27Enable = TRUEShell = /share/MD0_DATA/subversion/startsvn.shInstall_Path = /share/MD0_DATA/subversionAuthor = stonebornQPKG_File = -Version = 1.5.5



    Nach einem Neustart des QNAP sollte der Subversion-Server nun automatisch gestartet sein. Prüfen lässt sich das anhand der Prozeßliste, die man über die Eingabe von ps erhält. Hier sollte ein Prozeß zu finden sein, in dem svnserve steht.


    Schritt 7: Zugriff auf den Subversion-Server
    Zugriff auf den Subversion-Server erhält man nun über

    Code
    svn://192.168.0.123:4321/repo1


    (Hier die IP-Adresse des QNAP und den Port entsprechend anpassen.)


    Zum Zugriff auf das Repository bietet sich unter Windows TortoiseSVN an.
    Eine Anleitung für TortoiseSVN gibt es auch.


    [Schritt 8:] Backup des Repositories erstellen
    Es empfiehlt sich, regelmäßig Backups des Repositories zu erzeugen. Dazu kann man folgenden Befehl verwenden. Hier auch die Pfade entsprechend anpassen und darauf achten, dass die Pfade für das Backup existieren.

    Code
    svnadmin hotcopy /share/MD0_DATA/subversion/repositories /share/MD0_DATA/backups/repo1 --clean-logs
  • Hallo stoneborn,


    leider komme ich mit dem Startscript nicht klar. Auch wenn ich es von hand starte, startet svn nicht?


    Habe es exakt so gemacht wie beschrieben und auch nichts geändert - copy und paste halt.


    Bitte um Hilfe.


    Gruß,


    Error1



    PS. svnserve -d --listen-port=4321 --root /share/MD0_DATA/subversion/repositories --config-file /share/MD0_DATA/subversion/svnserve.conf
    Der fette slash fehlt im Manuel.

  • Danke für den Hinweis!
    Da ich den ersten Beitrag nicht mehr bearbeiten kann hier der korrigierte Code:


    Mit folgendem Befehl kann man den Subversion-Server starten:

    Code
    svnserve -d --listen-port=4321 --root /share/MD0_DATA/subversion/repositories --config-file /share/MD0_DATA/subversion/svnserve.conf
  • Die Optware liegt jetzt bei der Version 3.14 auf meinem QNAP TS-119 in /share/HDA_DATA/.qpkg/Optware/bin/svnserve
    ob HDA oder MD0 liegt denke ich an Raid oder nicht.
    Achja: ich hab bei mir einen svn Benutzer mit Verstecktem Ordner angelegt sodas ich die Ordnerrechte nicht anrühren muss (chmod 777 ist eigtl. nicht so toll)

  • Moin!


    Ich bin der Anleitung mal gefolgt, und habe mir SVN in einen Freigabeordner installiert, um mal aus interesse reinzuschnuppern wie das ganze so funktioniert. Nun habe ich im Repo Ordner zwar Ordner wie conf, db, hooks, locks, von den Dateien die ich commited habe ist aber nirgendwo eine Spur zu sehen. Sollte SVN die nicht auch in dem von mir erstellten Repo Ordner hochladen und verwalten? Oder wo werden die Dateien abgelegt?

  • Die Anleitung funktioniert nicht mehr mit der aktuellen SVN Software. Die Pfade der conf-Datei stimmen nicht mehr.


    Was muss ich bei Realm eingeben? Hier meckert der Server beim Starten und startet nicht.
    Kann mir hier jemand helfen?

  • Man muss alle Leerzeichen vor den Parametern löschen, dann funktioniert es.


    Realm ist nur ein eindeutiger Name zur Identifikation bei mehreren Repsositories.

  • ich muss das mal hoch holen, ich verzweifle gerade.


    Ich würde gerne auf meinem QNAP SVN installieren... Da ich Optware nirgends mehr finde, habe ich Entware-ng 0.97 installiert.
    Ich habe eine neue Putty-SSH Session aufgemacht und mich als admin eingeloggt und wollte svn mit opkg install svn installieren.


    Ich erhalte aber immer opkg: command not found.


    Ich bin abosluter qnap neuling... bitte greift mir bisschen unter die arme.


    vielen dank

  • Über Entware heissen die Subversion-Pakete nur anders, subversion-client, subversion-server und subversion-libs.


    Eine Webübersicht mit Suchfunktion findest du hier verlinkt:
    [HowTo] Entware-ng und Linux-Pakete installieren


    Die TS-x09 müssten eine ARMv5-kompatible CPU haben. Wenn du Entware installiert hast, solltest du dich erst danach per ssh auf dem NAS anmelden (oder neu anmelden), da sonst opkg in den Suchpfaden noch nicht sichtbar ist.

  • Dankeschön für die Antworten.


    Ich habe das qnap sogar neu gestartet, aber z.b. obkg update wird auch nicht gefunden.


    Muss ich vll den Ordner wechseln? Oder nen anderen Benutzer wählen? Su oder sudo wird auch nicht gefunden. Irgendwas ist komisch und meine Linux Kenntnisse werden nicht besser.