SVN-Server installieren: Unterschied zwischen den Versionen

Aus
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 15: Zeile 15:


== Netzwerkfreigabe und Synology-Benutzer anlegen==
== Netzwerkfreigabe und Synology-Benutzer anlegen==
Im Disk Station Manager (Web GUI) mit Hilfe von Volume Managers eine neue Netzwerkfreigabe Namens "'''svn'''" erstellen. Sie soll am Besten nicht mit dem User "'''admin'''" oder "'''root'''" wegen Sicherheit angelegt werden. Zur Not müssen die Rechte nachträglich angepasst werden. Oft sind die falschen Rechte ein Grund dafür, dass der Server nicht startet. Also einen Synology User mit Administratorrechten jedoch keinen root oder admin für das Anlegen des Verzeichnisses verwenden.
Im Disk Station Manager (Web GUI) mit Hilfe von Volume Managers eine neue Netzwerkfreigabe Namens "'''svn'''" erstellen. Sie soll am besten nicht mit dem User "'''admin'''" oder "'''root'''" wegen Sicherheit angelegt werden. Zur Not müssen die Rechte nachträglich angepasst werden. Oft sind die falschen Rechte ein Grund dafür, dass der Server nicht startet. Also einen Synology User mit Administratorrechten jedoch keinen root oder admin für das Anlegen des Verzeichnisses verwenden.


Einen neuen Synology Benutzer Namens "'''svnowner'''" ohne Passwort anlegen und ihm Schreib- Leserechte für das Verzeichnis '''svn''' freigeben. Für den Benutzer sollen am besten die weiteren Freigaben versperrt bleiben.
Einen neuen Synology Benutzer Namens "'''svnowner'''" ohne Passwort anlegen und ihm Schreib-Leserechte für das Verzeichnis "'''svn'''" freigeben. Für den Benutzer sollen am besten die weiteren Freigaben versperrt bleiben.


== Neus SVN Repository anlegen und konfigurieren ==
== Neus SVN Repository anlegen und konfigurieren ==
Zeile 32: Zeile 32:
<pre>su %meinuser%</pre>
<pre>su %meinuser%</pre>


Mit diesem Benutzer das SVN-Verzeichnis erstellen. 'unser_svn_repo' ist der Name des Repository.
Mit diesem Benutzer das SVN-Verzeichnis erstellen. 'unser_svn_repo' ist der Name des Repository.  
 
<pre>svnadmin create /volume1/svn/%unser_svn_repo%</pre>
<pre>svnadmin create /volume1/svn/%unser_svn_repo%</pre>


In das Unterverzeichnis "/conf" im neu erstellten SVN-Repository wechseln.
Danach die Konsole schließen und erneut als root auf der Diskstation einloggen. Eine Methode sich auszuloggen und als root wieder einzuloggen habe ich nicht gefunden. Deswegen:
<pre>cd %unser_svn_repo%/conf</pre>
 
<pre>login as: root
password: %Adminpasswort%</pre>
 
Wechseln ins Verzeichnis /volume1/svn/%unser_svn_repo%
<pre>cd /volume1/svn</pre>
 
In das Unterverzeichnis "'''conf'''" in unserem neu erstellten SVN-Repository wechseln.
<pre>cd conf</pre>


Datei mit der Benutzerdatenbank mit dem Editor VI öffnen. Bemerkung: die Konfigurationsdateien konnen auch in dem freigegebenen Ordner mit einem Windows-Editor bearbeitet werden.
Datei mit der Benutzerdatenbank mit dem Editor VI öffnen. Bemerkung: die Konfigurationsdateien konnen auch in dem freigegebenen Ordner mit einem Windows-Editor bearbeitet werden.

Version vom 10. April 2011, 07:56 Uhr

SVN (Subversion) auf der DS

Subversion ist eine Codeverwaltung, die das gemeinsame Arbeiten an gleichen Codes wesentlich vereinfacht. Subversion übernimmt hierbei das Versionsmanagement der Codes.

Installation

Voraussetzungen

IPKG SVN Pakete installieren

Auf der DiskStation IPKG Pakete aktualisieren und das Paket SVN installieren.

$ ipkg update
$ ipkg install svn

Netzwerkfreigabe und Synology-Benutzer anlegen

Im Disk Station Manager (Web GUI) mit Hilfe von Volume Managers eine neue Netzwerkfreigabe Namens "svn" erstellen. Sie soll am besten nicht mit dem User "admin" oder "root" wegen Sicherheit angelegt werden. Zur Not müssen die Rechte nachträglich angepasst werden. Oft sind die falschen Rechte ein Grund dafür, dass der Server nicht startet. Also einen Synology User mit Administratorrechten jedoch keinen root oder admin für das Anlegen des Verzeichnisses verwenden.

Einen neuen Synology Benutzer Namens "svnowner" ohne Passwort anlegen und ihm Schreib-Leserechte für das Verzeichnis "svn" freigeben. Für den Benutzer sollen am besten die weiteren Freigaben versperrt bleiben.

Neus SVN Repository anlegen und konfigurieren

Einloggen mit Putty als root mit Adminpasswort.

login as: root
password: %Adminpasswort%

Wechseln ins Verzeichnis /volume1/svn

cd /volume1/svn

Benutzer wechseln. "Meinuser" ist der Synology-Benutzer mit Administratorrechten jedoch kein root! Das wechseln der Identität funktioniert nicht: Wechseln des login für einen Benutzer

su %meinuser%

Mit diesem Benutzer das SVN-Verzeichnis erstellen. 'unser_svn_repo' ist der Name des Repository.

svnadmin create /volume1/svn/%unser_svn_repo%

Danach die Konsole schließen und erneut als root auf der Diskstation einloggen. Eine Methode sich auszuloggen und als root wieder einzuloggen habe ich nicht gefunden. Deswegen:

login as: root
password: %Adminpasswort%

Wechseln ins Verzeichnis /volume1/svn/%unser_svn_repo%

cd /volume1/svn

In das Unterverzeichnis "conf" in unserem neu erstellten SVN-Repository wechseln.

cd conf

Datei mit der Benutzerdatenbank mit dem Editor VI öffnen. Bemerkung: die Konfigurationsdateien konnen auch in dem freigegebenen Ordner mit einem Windows-Editor bearbeitet werden.

vi passwd

In die Datei 'passwd' zukünftige SVN-Benutzer eintragen. Im Klartext User und Passwort der Benutzer für das Repository eingeben.

%mein_svn_user1% = %testpw123%
%mein_svn_user2% = %testpw123%
...

Editiermodus verlassen, in den Befehlsmodus wechseln.

Taste "ESC"

Datei speichern und VI-Editor verlassen (write & quite).

:wq

Für begrenzte Schreib/Leserechte der Datei "passwd" sorgen.

chmod 600 passwd

Konfigurationsdatei des neuen SVN Repository mit dem Editor VI anpassen.

vi svnserve.conf

Editor VI in den Editiermodus umschalten.

i

Folgendes auskommentieren bzw. ergänzen:

  1. Rechte für anonyme Benutzer einschränken.
  2. Angemeldeten Benutzern den Zugang erlauben.
  3. Bezeichnung der Passwortdatei in der die Benutzer aufgelistet sind.
  4. Bezeichnung des Repository - optional
anon-access = none
auth-access = write
password-db = passwd
realm = Mein Repository

Editiermodus verlassen, in den Befehlsmodus wechseln.

Taste "ESC"

Datei speichern und VI-Editor verlassen (write & quite).

:wq

Das Repository ist nun einsatzbereit. Der Server muss noch konfiguriert werden.

Konfiguration des Servers

Einrichtung inet-Daemon

Mit vi inetd.conf bearbeiten:

vi /etc/inetd.conf

Folgende Zeile einfügen

svn stream tcp nowait svnowner /opt/bin/svnserve svnserve -i -r /volume1/svn

Speichern und schließen:

: wq

Bearbeitung services- File

Mit vi services bearbeiten:

vi /etc/services

Am Ende folgende Zeilen einfügen:

svn             3690/tcp                        #Subversion
svn             3690/udp                        #Subversion

Speichern und schließen:

: wq

Neustart

Nach der Installation ist ein Neustart der DiskStation erforderlich.

reboot

SVN auf Clienten aufrufen

Das geht am besten mit dem Programm Tortoise. Ist kostenlos im Internet erhältlich. Einfach runterladen und installieren. Anschließend kann man per Rechtsklick das Kontextmenü aufrufen und dort den Punkt "SVN Checkout" aufrufen.

Der SVN-Pfad den man eingeben muss lautet folgendermaßen:

svn://%ip_von_DS%/%unser_svn_repo%

Anschließend wird der Ordner an der entsprechenden Stelle erzeugt und ihr könnt damit arbeiten.

Probleme und Bemerkungen der User

Einmaliges Starten des Servers, geht bei Neustart verloren. Auf Konsole aufrufen:

svnserve -d -r %unser_svn_repo%

Start des SVN-Servers bei Systemstart:

Nach dieser Anleitung vorgehen und in das eigene Bootscript obigen Code einfügen.

Vorbemerkung: SVN ist erfahrungsgemäß recht ressourcenhungrig. Darum ist es sinnvoller den SVNserver-Daemon nicht die ganze Zeit am Laufen zu haben, sondern nur zu starten, wenn er benötigt wird. Das funktioniert under Linux/Unix mit dem inet-Daemon. (Das kann ich nicht bestättibgen.)

Bei mir funktionierte der Start mittels inetd nicht auf Anhieb. Das Problem wurde anscheinend auch hier beschrieben. Es half den inet-Daemon neu zu starten:

/usr/syno/etc/rc.d/S03inetd.sh stop
/usr/syno/etc/rc.d/S03inetd.sh start

Links