Installare Subversion su Debian: differenze tra le versioni
Riga 98: | Riga 98: | ||
# SSLRequireSSL | # SSLRequireSSL | ||
</pre> | </pre> | ||
al file <tt>/etc/apache2/ | al file <tt>/etc/apache2/mods-available/dav_svn.conf</tt>. |
Versione delle 10:32, 9 mar 2014
Introduzione
Subversion (noto anche come svn, che è il nome del suo client a riga di comando) è un sistema di controllo versione progettato da CollabNet Inc. con lo scopo di essere il naturale successore di CVS, oramai considerato superato. E' rilasciato sotto la licenza libera Apache.
Installazione
Operando sul server come utente root, installiamo Subversion con un solo comando:
# apt-get install subversion
Configurazione
Creiamo ora una directory per contenere i repository dei nostri progetti:
# mkdir –p /var/lib/svn
Quindi avviamo un primo progetto di prova all'interno della directory appena creata:
# svnadmin create /var/lib/svn/myproject
Abilitare HTTP
Subversion è ora installato e funzionante, ma può essere usato solo in locale sul server che lo ospita, che non è una cosa molto comoda. Abbiamo quindi bisogno di installare un web server e di configurarlo per ospitare Subversion.
Per l'installazione di Apache rimandiamo alla guida dedicata: Installare un ambiente LAMP: Linux, Apache2, SSL, MySQL, PHP5.
Al termine dell'installazione base di Apache possiamo installare il modulo SVN:
# apt-get install libapache2-svn
Ora dobbiamo configurare il modulo SVN di Apache modificando il suo file di configurazione principale:
# nano /etc/apache2/mods-available/dav_svn.conf
Il file di default è completamente commentato e non contiene nemmeno un'istruzione eseguibile, ma solo una configurazione di esempio disabilitata. Lasciamo pure tutto così e aggiungiamo alla fine del file la nostra configurazione:
<Location /svn> DAV svn SVNParentPath /var/lib/svn AuthType Basic AuthName "Ferdy Subversion Repository" AuthUserFile /etc/apache2/dav_svn.passwd <LimitExcept GET PROPFIND OPTIONS REPORT> Require valid-user </LimitExcept> </Location>
Quindi salviamo il file e riavviamo Apache:
# /etc/init.d/apache2 restart
Impostare i permessi sulla directory radice
Poichè interagiremo con Subversion attraverso Apache, è importante che il nostro webserver abbia i permessi di scrittura sulle directory del nostro repository. Impostiamo quindi i giusti permessi:
# chown -R www-data:www-data /var/lib/svn
Se decidiamo di utilizzare, oltre al modulo SVN di Apache, anche i client nativi di Subversion per i vari sistemi operativi:
- Kdesvn è un client per Linux
- RapidSVN è un client GUI per Microsoft Windows o Linux, scritto in C++ usando il framework wxWidgets
- eSvn è un client basato su Qt
- JSVN è un client basato su Swing (Java)
- TortoiseSVN è un'estensione della shell di Microsoft Windows
- RabbitVCS è un'estensione della shell di Linux
- svnX è un client GUI per Mac OS X (link).
- AnkhSVN è un addin per Microsoft Visual Studio .NET. Permette di eseguire le più comuni operazioni di Subversion direttamente dall'interno dell'IDE VS.NET.
- Versions è un nuovo client per Mac OS X, dotato di un'interfaccia coerente con il Sistema Operativo Apple
è importante impostare uno script Cron che periodicamente aggiusti i permessi, mantenendo la possibilità di scrittura e modifica per il nostro Web Server.
Gestione degli utenti
Ora dobbiamo crreare il file contenente l'elenco degli utenti che avranno accesso a SVN. Per ora creeremo un solo utente admin:
# htpasswd –c /etc/apache2/dav_svn.passwd admin
Ci verrà chiesto di inserire la password dell'utente.
Possiamo in ogni momento aggiungere nuovi utenti con il comando:
# htpasswd /etc/apache2/dav_svn.passwd nuovo_utente
Si noti l'assenza dell'opzione -c, che va utilizzata solo nel caso in cui si voglia ricreare un nuovo elenco da zero, resettando gli attuali utenti configurati.
Sicurezza di Subversion
Per rendere più sicuro Subversion è bene farlo girare sotto HTTPS e non sotto HTTP.
Verifichiamo quindi che il modulo SSL di Apache sia abilitato:
# a2enmod ssl
e in caso riavviamo il web server:
# /etc/init.d/apache2 restart
Creiamo ora un Virtual Host per Subversion, copiando il file default-ssl:
# cp /etc/apache2/sites-available/default-ssl /etc/apache2/sites-available/subversion-ssl
Possiamo disabilitare HTTP e richiedere l'uso di SSL aggiungendo la linea:
# SSLRequireSSL
al file /etc/apache2/mods-available/dav_svn.conf.