So richten Sie einen Subversion (SVN) -Server unter GNU / Linux - Ubuntu ein [geschlossen]

95

Ich habe einen Laptop mit Ubuntu, den ich als Subversion-Server verwenden möchte. Sowohl für mich vor Ort als auch für andere aus der Ferne. Welche Schritte sind erforderlich, um dies zum Laufen zu bringen? Bitte geben Sie folgende Schritte an:

  • Holen Sie sich Apache und die erforderlichen Module und konfigurieren Sie sie (ich weiß, dass es andere Möglichkeiten gibt, einen SVN-Server zu erstellen, aber ich möchte, dass er Apache-spezifisch ist).
  • Konfigurieren Sie eine sichere Methode für den Zugriff auf den Server (SSH / HTTPS).
  • Konfigurieren Sie eine Reihe autorisierter Benutzer (wie in, müssen sie zum Festschreiben berechtigt sein, können jedoch frei surfen)
  • Überprüfen Sie das Setup mit einem ersten Commit (eine Art "Hallo Welt").

Diese Schritte können eine beliebige Mischung aus Befehlszeilen- oder GUI-Anwendungsanweisungen umfassen. Wenn Sie können, beachten Sie bitte, wo Anweisungen für eine bestimmte Distribution oder Version spezifisch sind und wo stattdessen die Auswahl eines bestimmten Tools durch einen Benutzer verwendet werden kann (z. B. nano anstelle von vi ).

Grundlefleck
quelle
Kann ich Subversion Server unter Ubuntu und Clients auf jeder Plattform verwenden? wie Tortoise SVN Client unter Windows?
Raheel Hasan

Antworten:

146

Schritte, die ich unternommen habe, um meinen Laptop zu einem Subversion-Server zu machen. Der Kredit muss an AlephZarro gehen, um seine Anweisungen hier zu erhalten . Ich habe jetzt einen funktionierenden SVN-Server (der derzeit nur lokal getestet wurde).

Spezifisches Setup: Kubuntu 8.04 Hardy Heron

Anforderungen an diese Anleitung:

  • apt-get Paketmanager-Programm
  • Texteditor (ich benutze Kate)
  • Sudo-Zugriffsrechte

1: Installieren Sie den Apache HTTP-Server und die erforderlichen Module:

sudo apt-get install libapache2-svn apache2

Die folgenden zusätzlichen Pakete werden installiert:

apache2-mpm-worker apache2-utils apache2.2-common

2: Aktivieren Sie SSL

sudo a2enmod ssl
sudo kate /etc/apache2/ports.conf

Fügen Sie Folgendes hinzu oder überprüfen Sie, ob die Datei Folgendes enthält:

<IfModule mod_ssl.c>
    Listen 443
</IfModule>

3: Generieren Sie ein SSL-Zertifikat:

sudo apt-get install ssl-cert
sudo mkdir /etc/apache2/ssl
sudo /usr/sbin/make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/ssl/apache.pem

4: Erstellen Sie einen virtuellen Host

sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/svnserver
sudo kate /etc/apache2/sites-available/svnserver

Ändern (in ports.conf):

"NameVirtualHost *" to "NameVirtualHost *:443"

und (in svnserver)

<VirtualHost *> to <VirtualHost *:443>

Fügen Sie unter ServerAdmin (auch in der Datei svnserver) Folgendes hinzu:

SSLEngine on
SSLCertificateFile /etc/apache2/ssl/apache.pem
SSLProtocol all
SSLCipherSuite HIGH:MEDIUM

5: Aktivieren Sie die Site:

sudo a2ensite svnserver
sudo /etc/init.d/apache2 restart

So überwinden Sie Warnungen:

sudo kate /etc/apache2/apache2.conf

Hinzufügen:

"ServerName $your_server_name"

6: Hinzufügen von Repositorys: Im folgenden Setup wird davon ausgegangen, dass mehrere Repositorys gehostet werden sollen. Führen Sie dies aus, um das erste Repository zu erstellen:

sudo mkdir /var/svn

REPOS=myFirstRepo
sudo svnadmin create /var/svn/$REPOS
sudo chown -R www-data:www-data /var/svn/$REPOS
sudo chmod -R g+ws /var/svn/$REPOS

6.a. Für weitere Repositorys: Führen Sie Schritt 6 erneut aus (Ändern des REPOS-Werts) und überspringen Sie den Schrittmkdir /var/svn

7: Fügen Sie einen authentifizierten Benutzer hinzu

sudo htpasswd -c -m /etc/apache2/dav_svn.passwd $user_name

8: Aktivieren und konfigurieren Sie WebDAV und SVN:

sudo kate /etc/apache2/mods-available/dav_svn.conf

Hinzufügen oder Kommentieren:

<Location /svn>
DAV svn

# for multiple repositories - see comments in file
SVNParentPath /var/svn

AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /etc/apache2/dav_svn.passwd
Require valid-user
SSLRequireSSL
</Location>

9: Starten Sie den Apache-Server neu:

sudo /etc/init.d/apache2 restart

10: Validierung:

Browser gestartet:

http://localhost/svn/$REPOS
https://localhost/svn/$REPOS

Beide benötigten einen Benutzernamen und ein Passwort. Ich denke ohne Kommentar:

<LimitExcept GET PROPFIND OPTIONS REPORT>

</LimitExcept>

in /etc/apache2/mods-available/dav_svn.conf, würde anonymes Surfen ermöglichen.

Der Browser zeigt "Revision 0: /"

Etwas begehen:

svn import --username $user_name anyfile.txt https://localhost/svn/$REPOS/anyfile.txt -m “Testing”

Akzeptieren Sie das Zertifikat und geben Sie das Passwort ein. Überprüfen Sie, was Sie gerade begangen haben:

svn co --username $user_name https://localhost/svn/$REPOS

Nach diesen Schritten (vorausgesetzt, ich habe keine Fehler beim Kopieren / Einfügen gemacht) hatte ich ein funktionierendes SVN-Repository auf meinem Laptop.

Grundlefleck
quelle
Die Anweisungen funktionierten auch bei Jaunty perfekt. Vielen Dank!
Michael Moussa
6
Schien perfekt zu funktionieren, aber ich bekomme eine 403 verboten, wenn ich versuche, darauf zuzugreifen, und keine Aufforderung zur Eingabe eines Passworts. Irgendwelche Hinweise, was falsch sein könnte?
Korona
@korona: Auf welche Weise darauf zugreifen: SVN-Befehle ausführen oder darauf navigieren?
Grundlefleck
1
"NameVirtualHost *" to "NameVirtualHost *:443"befindet sich in der Datei ports.conf, während <VirtualHost *> to <VirtualHost *:443>sich in den Einstellungen von svnserver befindet. dies sollte erwähnt werden. Ich war ziemlich verwirrt, weil ich in den svnserver-Einstellungen nach NameVirtualHost gesucht habe und es nicht finden konnte.
Wandang
1
In Debian Stretch müssen Sie anscheinend libapache2-mod-svnstattdessen installieren libapache2-svn(da letzteres nicht mehr verfügbar ist).
TheStoryCoder
2

Danach musste ich ausführen (im Kontext des oben zitierten Beispiels)

$ sudo chmod g + w /var/svn/$REPOS/db/rep-cache.db

$ sudo chown www-data: www-data /var/svn/$REPOS/db/rep-cache.db

Andernfalls wurde beim Festschreiben lokaler Änderungen immer wieder der Fehler 409 angezeigt (obwohl die Zusagen serverseitig wirksam waren, musste ich lokale Aktualisierungen durchführen).

Thierry Marianne
quelle
1

Dieser Artikel scheint einen ziemlich guten Überblick über den gesamten Prozess zu geben. Ich würde empfehlen, den Anweisungen zu folgen und dann einige spezifischere Fragen zu Problemen zu stellen, auf die Sie stoßen und die in den Artikeln, auf die ich und andere Personen in diesen Antworten verwiesen haben, nicht behandelt werden.

Kibbee
quelle
1

Wenn Sie beim Aufrufen des Webservers 403 verboten bekommen, kann dies daran liegen, dass Sie einen Hostnamen verwendet haben, der nicht dem entspricht, den Sie in Ihrer Konfigurationsdatei angegeben haben (z. B. localhost oder 127.0.0.1). Versuchen Sie stattdessen , https: // wie auch immer Ihren Hostnamen zu drücken ...

PuO2
quelle
Eine weitere Ursache: Setzen Sie den SVN-Pfad auf einen Symlink. Wenn Ihr SVN-Pfad ein Symlink ist, müssen Sie folgende Symlinks zulassen.
Copolii
-2

Bitte schreiben Sie einen einzelnen Befehl auf das Terminal.

Um das Terminal zu öffnen, drücken Sie bitte Ctrl+ Alt+ Tund geben Sie diesen Befehl ein:

$sudo apt-get install subversion
Ashish Saini
quelle
-2

Für Apache:

sudo apt-get -yq install apache2

Für SSH:

sudo apt-get -yq install openssh-server

Für Subversion:

sudo apt-get -yq install subversion subversion-tools

Wenn Sie möchten, können Sie diese in einem Befehl wie folgt kombinieren:

sudo apt-get -yq install apache2 openssh-server subversion subversion-tools

Ich kann mit dem Rest nicht helfen ...

UnkwnTech
quelle