Apache Subversion ist auch als SVN bekannt, es ist ein Open-Source-Versionierungs- und Revisionskontrollprogramm, das beim Speichern der aktuellen und vergangenen historischen Dateiversionen wie Dokumente, Quellcodes und Web hilft Seiten. SVN steht unter der Apache-Lizenz.
In diesem Tutorial lernen wir, wie SVN auf RHEL 8 und Rocky Linux 8 installiert und konfiguriert wird. Hier können authentifizierte Benutzer Check-in- und Checkout-Vorgänge im SVN-Repository durchführen .
Schritt 1) Installieren Sie SVN und Apache
SVN- und Apache-Pakete (http) sind in den Standardpaketrepositorys von RHEL 8 und Rocky Linux 8 verfügbar. Führen Sie den folgenden dnf-Befehl aus, um die erforderlichen Pakete zu installieren,
$ sudo dnf install -y httpd subversion mod_dav_svn
Schritt 2) Konfigurationsdatei von Apache Subversion bearbeiten
Erstellen Sie eine Datei „/etc/httpd/conf.d/subversion.conf“ und fügen Sie ihr die folgenden Zeilen hinzu.
$ sudo vi /etc/httpd/conf.d/subversion.conf <Location /svn> DAV svn SVNParentPath /var/www/svn/ AuthType Basic AuthName "SVN Repository" AuthUserFile /etc/svn/svn-auth-accounts Require valid-user </Location>
Die obigen Einstellungen erlauben nur den authentifizierten Benutzern, das SVN-Repository zu verwenden.
Schritt 3) Erstellen Sie SVN-Benutzer über den Befehl htpasswd
Führen Sie den folgenden Befehl aus, um einen Benutzer für SVN über den Befehl htpasswd zu erstellen,
$ sudo htpasswd -cm /etc/svn-auth-accounts linuxtechi New password: Re-type new password: Adding password for user linuxtechi $
Im obigen htpasswd-Befehl haben wir ‘-c’ &‘-m’ verwendet Optionen. -c wird zum Erstellen der Passwortdatei (/etc/svn-auth-accounts) und -m zum Erstellen des MD5-Verschlüsselungspassworts für den Benutzer verwendet. Um einen zweiten Benutzer zu erstellen, entfernen Sie das ‚-c‘ aus dem obigen Befehl, da sonst die vorhandene Datei überschrieben wird.
$ sudo htpasswd -m /etc/svn-auth-accounts pkumar New password: Re-type new password: Adding password for user pkumar $
Schritt 4) SVN-Repository erstellen
Führen Sie die folgenden Befehle nacheinander aus, um Ihr erstes SVN-Repository zu erstellen und die erforderlichen Berechtigungen festzulegen,
$ sudo mkdir /var/www/svn $ cd /var/www/svn/ $ sudo svnadmin create repo $ sudo chown apache.apache repo/
Hinweis:Falls SELinux aktiviert ist, wenden Sie die folgenden Selinux-Regeln an, indem Sie
$ sudo chcon -R -t httpd_sys_content_t /var/www/svn/repo/ $ sudo chcon -R -t httpd_sys_rw_content_t /var/www/svn/repo/
Schritt 5) Apache-Dienst starten und aktivieren
Führen Sie die folgenden systemctl-Befehle aus, um den Dienst des Apache-Webservers zu starten und zu aktivieren.
$ sudo systemctl start httpd $ sudo systemctl enable httpd
Falls die Firewall auf Ihrem System aktiviert ist, lassen Sie den folgenden Port zu, indem Sie ausführen,
$ sudo firewall-cmd --permanent --zone=public --add-service=http $ sudo firewall-cmd --permanent --zone=public --add-service=https $ sudo firewall-cmd --reload
Schritt 6) Greifen Sie über den Webbrowser auf das SVN-Repo zu
Geben Sie die folgende URL in Ihren Webbrowser ein,
http://
Ersetzen Sie im Browser einfach die IP-Adresse durch die IP Ihres SVN-Servers
Schritt 7) Deaktivieren Sie den anonymen Zugriff auf das SVN-Repository
Bearbeiten Sie die Datei – /var/www/svn/repo/conf/svnserve.conf, fügen Sie die folgenden zwei Zeilen hinzu
## Disable Anonymous Access anon-access = none ## Enable Access control authz-db = authz
Schritt 8) Importieren Sie den Inhalt des Projektverzeichnisses in das SVN-Repository
Lassen Sie uns unser erstes Beispielprojektverzeichnis und seine Datei erstellen.
$ mkdir devops $ cd devops/ $ touch testfile_1 ; touch testfile_2 $
Verwenden Sie jetzt den SVN-Befehl, um das Projekt „devops“ in das Repo zu importieren. Da wir ein Beispielprojekt „devops“ auf dem svn-Server selbst erstellt haben. Führen Sie also den folgenden svn-Befehl aus,
$ sudo svn import -m "First SVN Repo" devops file:///var/www/svn/repo/devops Adding devops/testfile_1 Adding devops/testfile_2 Committing transaction... Committed revision 1. $
Jetzt im Browser prüfen
Schritt 9) Probieren Sie das Projekt aus
In meinem Fall möchte ich das devops-Projekt auf meinem Ubuntu-Laptop mit dem SVN-Befehl auschecken. Um Checkout-Vorgänge durchzuführen, stellen Sie bitte sicher, dass auf Ihrem System das Subversion-Paket installiert ist. Wenn nicht, verwenden Sie den Befehl „sudo apt install -y subversion“, um das erforderliche Paket zu installieren.
$ mkdir svn_data $ svn co http://192.168.1.180/svn/repo/devops/ /home/pkumar/svn_data/ --username linuxtechi A svn_data/testfile_1 A svn_data/testfile_2 Checked out revision 1. $
Schritt 10) Änderungen übernehmen
Nachdem wir die erforderlichen Änderungen im Projektcode vorgenommen haben, können wir die Änderungen an die SVN-Repositorys übertragen. In meinem Fall habe ich eine weitere Datei im Ordner linuxproject erstellt.
$ cd svn_data/ $ touch testfile_3 $ svn add testfile_3 --username linuxtechi A testfile_3 $ $ svn commit -m "New File addedd" --username linuxtechi Adding testfile_3 Transmitting file data . Committed revision 2. $
Hinweis:Beim Festschreiben der Änderungen erhalten Sie den folgenden Fehler
svn:E000013:Commit fehlgeschlagen (Details folgen):
svn:E000013:Transaktion konnte nicht gestartet werden
Um diesen Fehler zu beheben, stellen Sie dann sicher, dass der Apache-Benutzer Lese- und Schreibzugriff auf das gesamte Repository hat.
$ cd /var/www/svn/repo $ sudo chown -R apache:apache * $ sudo chmod -R 664 *
Das war alles aus diesem Tutorial. Bitte teilen Sie Ihr Feedback und Ihre Fragen im Kommentarbereich unten.