Apache Subversion è anche noto come SVN, è un programma open source di controllo delle versioni e delle revisioni che aiuta a memorizzare le versioni dei file storici presenti e passati come documenti, codici sorgente e web pagine. SVN è sotto licenza Apache.
In questo tutorial impareremo come installare e configurare SVN su RHEL 8 e Rocky Linux 8. Qui gli utenti autenticati potranno eseguire operazioni di check-in e check-out sul repository SVN .
Passaggio 1) Installa SVN e Apache
I pacchetti SVN e Apache (http) sono disponibili nei repository di pacchetti predefiniti di RHEL 8 e Rocky Linux 8. Esegui il seguente comando dnf per installare i pacchetti richiesti,
$ sudo dnf install -y httpd subversion mod_dav_svn
Fase 2) Modifica il file di configurazione di Apache Subversion
Crea un file '/etc/httpd/conf.d/subversion.conf' e aggiungi le seguenti righe.
$ 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>
Le impostazioni di cui sopra consentiranno solo agli utenti autenticati di utilizzare il repository SVN.
Fase 3) Crea utenti SVN tramite il comando htpasswd
Esegui il comando sottostante per creare un utente per SVN tramite il comando htpasswd,
$ sudo htpasswd -cm /etc/svn-auth-accounts linuxtechi New password: Re-type new password: Adding password for user linuxtechi $
Nel comando htpasswd sopra abbiamo usato '-c' &'-m' opzioni. -c viene utilizzato per creare il file della password (/etc/svn-auth-accounts) e -m utilizzato per creare la password di crittografia MD5 per l'utente. Per creare un secondo utente, rimuovi '-c' dal comando precedente, altrimenti sovrascriverà il file esistente.
$ sudo htpasswd -m /etc/svn-auth-accounts pkumar New password: Re-type new password: Adding password for user pkumar $
Passaggio 4) Crea un repository SVN
Esegui i seguenti comandi uno dopo l'altro per creare il tuo primo repository svn e per impostare le autorizzazioni richieste,
$ sudo mkdir /var/www/svn $ cd /var/www/svn/ $ sudo svnadmin create repo $ sudo chown apache.apache repo/
Nota:nel caso in cui SELinux sia abilitato, applica sotto le regole di selinux eseguendo,
$ 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/
Passaggio 5) Avvia e abilita il servizio Apache
Esegui i comandi systemctl sottostanti per avviare e abilitare il servizio del server Web Apache.
$ sudo systemctl start httpd $ sudo systemctl enable httpd
Nel caso in cui il firewall sia abilitato sul tuo sistema, consenti la seguente porta eseguendo,
$ sudo firewall-cmd --permanent --zone=public --add-service=http $ sudo firewall-cmd --permanent --zone=public --add-service=https $ sudo firewall-cmd --reload
Passaggio 6) Accedi a SVN Repo dal browser Web
Digita il seguente URL nel tuo browser web,
http://
Nel browser basta sostituire l'indirizzo IP con l'IP del tuo server SVN
Passaggio 7) Disabilita l'accesso anonimo al repository SVN
Modifica il file – /var/www/svn/repo/conf/svnserve.conf, aggiungi le due righe seguenti
## Disable Anonymous Access anon-access = none ## Enable Access control authz-db = authz
Passaggio 8) Importa il contenuto di Project Directory nel repository SVN
Creiamo la nostra prima directory di progetto di esempio e il relativo file.
$ mkdir devops $ cd devops/ $ touch testfile_1 ; touch testfile_2 $
Ora usa il comando SVN per importare il progetto "devops" nel repository. Poiché abbiamo creato un progetto "devops" di esempio sul server svn stesso. Quindi esegui il seguente comando svn,
$ 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. $
Ora controlla dal browser
Fase 9) Dai un'occhiata al progetto
Nel mio caso, voglio controllare il progetto devops sul mio laptop Ubuntu usando il comando SVN. Quindi, per eseguire le operazioni di checkout, assicurati che sul tuo sistema sia installato il pacchetto subversion, in caso contrario usa il comando "sudo apt install -y subversion" per installare il pacchetto richiesto.
$ 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. $
Fase 10) Conferma delle modifiche
Dopo aver apportato le modifiche richieste nel codice del progetto, possiamo eseguire il commit delle modifiche nei repository SVN. Nel mio caso ho creato un altro file nella cartella linuxproject.
$ 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. $
Nota:durante il commit delle modifiche se ricevi un errore inferiore
svn:E000013:Commit non riuscito (i dettagli seguono):
svn:E000013:impossibile avviare una transazione
Quindi, per risolvere questo errore, assicurati che l'utente Apache abbia accesso in lettura e scrittura all'intero repository.
$ cd /var/www/svn/repo $ sudo chown -R apache:apache * $ sudo chmod -R 664 *
Questo è tutto da questo tutorial, condividi il tuo feedback e le tue domande nella sezione commenti qui sotto.