Andreas: CVS oder SVN auf einem Server ohne Root-Zugriff?

Hallo,

ich habe bei meinem Provider einen Dedicated Server ohne Root-Zugriff.
Ist es möglich entweder CVS oder SVN auch ohne root einzurichten?
Ich weiß dass bei SVN auch eine SSH-Verbindung zum Repository möglich ist, bleibt nur noch die Frage, ob sich das Reporsitory selbst ohne root irgendwie einrichten lässt.

Danke im Voraus!
Andreas

  1. Hallo Andreas,

    ich habe bei meinem Provider einen Dedicated Server ohne Root-Zugriff.
    Ist es möglich entweder CVS oder SVN auch ohne root einzurichten?
    Ich weiß dass bei SVN auch eine SSH-Verbindung zum Repository möglich ist, bleibt nur noch die Frage, ob sich das Reporsitory selbst ohne root irgendwie einrichten lässt.

    Wenn Du SSH-Zugriff hast, brauchst Du für SVN keine root-Rechte (CVS mit Sicherheit auch nicht). Auf SVN kannst Du auf drei Arten zugreifen:

    1. Per WebDAV: Dazu muss ein Apache-Server laufen, bei dem das Modul mod_dav_svn geladen und konfiguriert ist.

    2. Per svnserve: Dazu muss ein dedizierter Server-Prozess namens "svnserve" laufen, der auch konfiguriert werden muss.

    3. Per SSH-Zugriff: Dazu muss der SSH-User lediglich Lese- und Schreibrechte auf das SVN-Repository haben.

    Bei allen 3 Optionen muss aber svn auf dem Server installiert sein, das ist Grundvoraussetzung. Wenn dies nicht der Fall ist, kannst Du es vergessen. Aber wenn Du SSH-Zugriff hast, dann kannst Du prinzipiell durchaus eine eigene SVN-Installation in Deinem Homverzeichnis vornehmen (irgend ein Binärpaket krallen und hochladen, Pfade korrekt setzen) - ist zwar etwas komplizierter, aber nicht unmöglich.

    Fälle 1 und 2 implizieren, dass ein Serverdienst im Hintergrund laufen muss. Das ist selbst bei fehlenden Root-Rechten machbar, denn wenn man einen Port über 1024 wählt, kann man als normaler User durchaus Serverdienste starten. svnserve verwendet standardmäßig den Port 3690, das wäre also kein Problem. Eine eigene, lokale Apache-Installation (auch wieder etwas aufwändig zu installieren, aber nicht unmöglich) könntest Du auf einen anderen Port als 80 umbiegen, müsstest Du halt immer mit angeben, wenn Du darauf zugreifen willst. Allerdings haben immer laufende Serverdienste den großen Nachteil, dass sie irgendwann gestartet werden müssen. Das geht natürlich auch lokal auf der SSH-Konsole problemlos - wenn aber jemand mal den Server neu startet, ist der Dienst natürlich weg - und da Du keine root-Rechte hast, kannst Du ihn auch nicht automatisiert starten lassn.

    Daher wäre wohl hier am sinnvollsten, Du legst das Repository auf dem Server an und greifst per SSH darauf zu - dann musst Du Dich nicht um laufende Dienste kümmern.

    Das Anlegen des Repositories ist genau das gleiche Verfahren, wie das Anlegen auf Deiner lokalen Festplatte wäre, lies Dir einfach mal das Kapitel Repository administration im SVN-Handbuch durch (das SVN-Handbuch ist allgemein auch eine ganz nette Lektüre, wenn Du sowas aufsetzen willst).

    Viele Grüße,
    Christian

    1. Hallo Christian,

      1. Per WebDAV: Dazu muss ein Apache-Server laufen, bei dem das Modul mod_dav_svn geladen und konfiguriert ist.

      2. Per svnserve: Dazu muss ein dedizierter Server-Prozess namens "svnserve" laufen, der auch konfiguriert werden muss.

      3. Per SSH-Zugriff: Dazu muss der SSH-User lediglich Lese- und Schreibrechte auf das SVN-Repository haben.

      Ja, ich hatte tatsächlich Option 3 im Kopf, also svn+ssh.
      Mit "Kein root-Zugriff" wollte ich dann auch implizit zum Ausdruck bringen, dass SVN noch nicht installiert ist und ich eine Lösung mit einem normalen Benutzerkonto finden müsste.
      Du sagst, das sei komplizierter, Du hast nicht zufällig einen Link zu einer Anleitung im Kopf?
      SVN gibt es tatsächlich schon als fertige Binary zu downloaden. Dann müsste es ja auch schon mit dem Starten der Binary getan sein. Bleibt nur noch zu hoffen, dass das Programm die Konfig-Dateien nicht automatisch in /etc schreiben will...
      Ich probier das mal.

      Vielen Dank!

      1. So, hier ein kurzes Feedback: das hat tatsächlich funktioniert!!!
        Hier kurz die Lösung skizziert.

        Das einzige Problem war, dass ich es selber kompilieren musste, der Server hat als OS "Special Dedicated Linux" (was immer das für eine Distro sein mag).
        Zum Glück braucht SVN keine speziellen Libs. Nur zwei Libs wurden zusätzlich benötigt (laut configure): apr und apr-utils, beide bekommt man bei apache.org. Der Quelltext reicht, einfach in zwei Unterverzeichnisse in den SVN-Quellen gelegt und kompiliert. Danach lief alles wie bei der SVN-Installation beschrieben. Nur den svnserve muss man halt selber starten.

        Wenn das jemanden interessiert kann ich dazu mal eine ausführliche Anleitung schreiben.

        Viele Grüße,
        Andreas