So installieren Sie den Subversion-Server


8

Ich möchte einen Subversion-Server auf meinem Ubuntu-Computer installieren.
Welche Pakete brauche ich? Wie erstelle ich ein Repository und lege einen neuen Benutzer fest?


Abhängig von Ihren Anforderungen sind Sie möglicherweise besser mit einem verteilten SCM wie Bazaar (bzr) vertraut, das von Subversion leicht zu erlernen ist, für das jedoch kein Server erforderlich ist. Dies ist großartig, wenn Sie alleine arbeiten und nur ein Protokoll und ein Sicherheitsnetz benötigen. Und ich muss nur Git erwähnen, das mächtigste Werkzeug da draußen, imho.
Martin Ueding

sudo apt-get install subversion
AMIC MING

Antworten:


10

Es gibt viele Konfigurationen für svn, hier einige kurze Anweisungen, um ein grundlegendes svn-Repository über http verfügbar zu machen.

  1. Installieren Sie die erforderlichen Pakete: apt-get install subversion apache2 libapache2-svn
  2. Erstellen Sie eine Verzeichnisstruktur: mkdir -p /var/svn/repos/
  3. Erstellen Sie ein Repository:
    • cd /var/svn/repos/
    • svnadmin create --fs-type fsfs <your-repository>
  4. Erstellen Sie nun Ihr Projekt-Struckture, um es in das Repository zu importieren:
    • mkdir -p /tmp/myproject/trunk /tmp/myproject/tags /tmp/myproject/branches
  5. Importieren Sie das Projekt in das Repository:
    • svn import /tmp/myproject file:///var/svn/repos/<your-repository> -m "initial import"
  6. Machen Sie es über http zugänglich:
    • cd /etc/apache2/sites-available
    • touch subversion.conf
    • vim subversion.conf

Bearbeiten Sie nun die leere Datei mit folgender Konfiguration:

NameVirtualHost *:80

<VirtualHost *:80>   
  <Location /svn>
      ErrorDocument 404 default
      DAV svn
      SVNParentPath /var/svn/repos
      SVNListParentPath off
      Require valid-user
      AuthType Basic
      AuthName "subversion access"
      AuthUserFile /var/svn/.htpasswd
      AuthzSVNAccessFile /var/svn/authz 
  </Location>
</VirtualHost>
  • Aktivieren Sie das Modul dav_svn für Apache: a2enmod dav_svn
  • Aktivieren Sie das authz_svn-Modul für Apache: a2enmod authz_svn
  • Aktivieren Sie die VHost-Konfiguration: a2ensite subversion.conf
  • Starten Sie nun den Webserver neu: /etc/init.d/apache2 restart
  • Erstellen Sie ein htpasswd: htpasswd -c /var/svn/.htpasswd user
  • Erstellen Sie die Zugriffssteuerungsdatei für das Repository: touch /var/svn/authz
  • Bearbeiten Sie die leere Authz-Datei: vim /var/svn/authz
  • Geben Sie dem Benutzer Lese- / Schreibrechte:

[Ihr Repository: /]

Benutzer = rw

Lassen Sie uns versuchen, das Repo über http zu überprüfen: svn checkout http://your-server/svn/your-repository


1
Ich kann die Bearbeitung nicht durchführen, da die Änderungen zu klein sind. Können Sie jedoch die letzte Zeile korrigieren, die checkoutim Gegensatz zu steht ceckout?
Nanofarad

Ich kann dieses Paket libapache2-svn nicht finden. Fehler: # Statusinformationen lesen ... Fertig E: Paket libapache2-svn konnte nicht gefunden werden System: Ubuntu 12.04 32bit (alle Repositorys sind aktiviert)
Shantanu

2
Sie müssen auch das authz_svn-Modul aktivieren, sonst erhalten Sie Invalid command 'AuthzSVNAccessFile', perhaps misspelled or defined by a module not included in the server configuration. Sie können dazu den Befehl a2enmod authz_svnverwenden.
Frau Wadge

2

Beginnen Sie mit dem Lesen des Handbuchs . Ich mache gerade das gleiche.

Sobald Sie ein Repository mit eingerichtet haben svnadmin create /path/to/repo, können Sie svnserve --root /path/to/repodas Repository unter zur Verfügung stellen svn://yourhost/. Öffnen Sie gegebenenfalls den TCP-Port 3690.

Es ist möglich, SVN über HTTP zu verwenden, aber ich habe diesen Teil noch nicht gelesen: o


2

Sie benötigen das subversionPaket.

sudo apt-get update
sudo apt-get install subversion

Dieses Paket enthält den Client, Tools zum Erstellen eines Subversion-Repositorys und den Server.




0

Öffnen Sie zum Installieren von Subversion ein Terminal und führen Sie den folgenden Befehl aus:

sudo apt-get install subversion libapache2-svn

Wir werden das Subversion-Repository in / svn erstellen, obwohl Sie einen Speicherort mit ausreichend Speicherplatz auswählen sollten.

sudo svnadmin create /svn

Ändern Sie den Eigentümer dieses Repositorys in einen Apache-Benutzer.

sudo chown -R www-data:www-data /svn

Erstellen Sie ein grundlegendes Subversion-Repository für die spätere Verwendung (für Produktion / Qualitätssicherung / Testen / Stating ../ etc ..)

sudo mkdir -p /tmp/myproject/trunk /tmp/myproject/tags /tmp/myproject/branches

Importieren Sie diese Verzeichnisse in unser Repository

sudo svn import /tmp/myproject file:///svn -m "initial import"

Als nächstes müssen wir die Konfigurationsdatei für das Subversion-Webdav-Modul bearbeiten. Sie können einen anderen Editor verwenden, wenn Sie möchten.

sudo gedit /etc/apache2/mods-enabled/dav_svn.conf

Das Location-Element in der Konfigurationsdatei bestimmt das Stammverzeichnis, von dem aus auf Subversion zugegriffen werden kann, z. B.: Http://www.server.com/svn

<Location /svn>

Die DAV-Leitung muss nicht kommentiert werden, um das Dav-Modul zu aktivieren

# Uncomment this to enable the repository,
DAV svn

Die SVNPath-Zeile sollte an derselben Stelle festgelegt werden, an der Sie das Repository mit dem Befehl svnadmin erstellt haben.

# Set this to the path to your repository
SVNPath /svn

Im nächsten Abschnitt können Sie die Authentifizierung aktivieren. Dies ist nur eine grundlegende Authentifizierung. Betrachten Sie sie daher nicht als äußerst sicher. Die Kennwortdatei befindet sich dort, wo die AuthUserFile-Einstellung sie auf ... setzt. Am besten lassen Sie sie auf der Standardeinstellung.

# Uncomment the following 3 lines to enable Basic Authentication
AuthType Basic
AuthName “Subversion Repository”
AuthUserFile /etc/apache2/dav_svn.passwd

Verwenden Sie den folgenden Befehl, um einen Benutzer im Repository zu erstellen:

sudo htpasswd -cm /etc/apache2/dav_svn.passwd <username>

Beachten Sie, dass Sie die Option -c nur beim ERSTEN Mal verwenden sollten, wenn Sie einen Benutzer erstellen. Danach möchten Sie nur noch die Option -m verwenden, die die MD5-Verschlüsselung des Kennworts angibt, die Datei jedoch nicht neu erstellt.

Beispiel:

sudo htpasswd -cm /etc/apache2/dav_svn.passwd geek
New password:
Re-type new password:
Adding password for user geek

Starten Sie Apache neu, indem Sie den folgenden Befehl ausführen:

sudo /etc/init.d/apache2 restart

Danke: http://www.howtogeek.com/howto/ubuntu/install-subversion-with-web-access-on-ubuntu/

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.