Installare Subversion su Debian: differenze tra le versioni

Da Guide@Debianizzati.Org.
Vai alla navigazione Vai alla ricerca
Nessun oggetto della modifica
 
(15 versioni intermedie di un altro utente non mostrate)
Riga 1: Riga 1:
{{Versioni compatibili | Squeeze | Wheezy}}
== Introduzione ==
== Introduzione ==
Subversion (noto anche come svn, che è il nome del suo client a riga di comando) è un sistema di [http://it.wikipedia.org/wiki/Controllo_versione controllo versione] progettato da CollabNet Inc. con lo scopo di essere il naturale successore di CVS, oramai considerato superato.
Subversion (noto anche come svn, che è il nome del suo client a riga di comando) è un sistema di [http://it.wikipedia.org/wiki/Controllo_versione controllo versione] progettato da CollabNet Inc. con lo scopo di essere il naturale successore di CVS, oramai considerato superato. È rilasciato sotto la licenza libera [http://it.wikipedia.org/wiki/Apache_License Apache].


== Installazione ==
== Installazione ==
Operando sul server come utente root, installiamo Subversion con un solo comando:
Operando sul server come utente [[root]], installiamo Subversion con un solo comando:
<pre>
<pre>
# apt-get install subversion
# apt-get install subversion
Riga 27: Riga 28:
# apt-get install libapache2-svn
# apt-get install libapache2-svn
</pre>
</pre>
Ora dobbiamo configurare il modulo SVN di Apache modificando il suo file di configurazione principale:
<pre>
# nano /etc/apache2/mods-available/dav_svn.conf
</pre>
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:
<pre>
<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>
</pre>
Quindi salviamo il file e riavviamo Apache:
<pre>
# /etc/init.d/apache2 restart
</pre>
== 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:
<pre>
# chown -R www-data:www-data /var/lib/svn
</pre>
Se decidiamo di utilizzare, oltre al modulo SVN di Apache, anche i client nativi di Subversion per i vari sistemi operativi:
* [http://kdesvn.alwins-world.de/trac.fcg Kdesvn] è un client per Linux
* [http://rapidsvn.tigris.org RapidSVN] è un client GUI per Microsoft Windows o Linux, scritto in C++ usando il framework wxWidgets
* [http://esvn.umputun.com eSvn] è un client basato su Qt
* [http://jsvn.alternatecomputing.com JSVN] è un client basato su Swing (Java)
* [http://tortoisesvn.tigris.org TortoiseSVN] è un'estensione della shell di Microsoft Windows
* RabbitVCS è un'estensione della shell di Linux
* [http://www.lachoseinteractive.net/en/community/subversion/svnx/features svnX] è un client GUI per Mac OS X ([http://www.lachoseinteractive.net/en/community/subversion/svnx/features/ 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.
* [http://www.versionsapp.com Versions] è un nuovo client per Mac OS X, dotato di un'interfaccia coerente con il Sistema Operativo Apple
è importante impostare uno [[Utilizzo del servizio di scheduling Cron| script Cron]] che periodicamente aggiusti i permessi, mantenendo la possibilità di scrittura e modifica per il nostro Web Server.
== Gestione degli utenti ==
Ora dobbiamo creare il file contenente l'elenco degli utenti che avranno accesso a SVN. Per ora creeremo un solo utente ''admin'':
<pre>
# htpasswd –c /etc/apache2/dav_svn.passwd admin
</pre>
Ci verrà chiesto di inserire la password dell'utente.
<br/>
Possiamo in ogni momento aggiungere nuovi utenti con il comando:
<pre>
# htpasswd /etc/apache2/dav_svn.passwd nuovo_utente
</pre>
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.
<br/>
Verifichiamo quindi che il modulo SSL di Apache sia abilitato:
<pre>
# a2enmod ssl
</pre>
e in caso riavviamo il web server:
<pre>
# /etc/init.d/apache2 restart
</pre>
Creiamo ora un Virtual Host per Subversion, copiando il file <code>default-ssl</code>:
<pre>
# cp /etc/apache2/sites-available/default-ssl /etc/apache2/sites-available/subversion-ssl
</pre>
Possiamo disabilitare HTTP e richiedere l'uso di SSL aggiungendo la linea:
<pre>
# SSLRequireSSL
</pre>
al file <code>/etc/apache2/mods-available/dav_svn.conf</code>.
== Utilizzo ==
Il nostro repository SVN è ora accessibile all'indirizzo:
<pre>
https://ip.del.nostro.server/svn/myproject
</pre>
Per la creazione di progetti e l'utilizzo dei client SVN si veda ad esempio l'ottima guida di [http://www.html.it/guide/guida-subversion/ HTML.it].
{{Autori
|Autore = [[Utente:Ferdybassi|Ferdybassi]] 11:46, 09 mar 2014 (CET)
}}
[[Categoria:Web server]]
[[Categoria:Controllo di versione]]

Versione attuale delle 11:53, 18 mar 2014

Edit-clear-history.png Attenzione. Questa guida è da considerarsi abbandonata, per via del tempo trascorso dall'ultima verifica.

Potrà essere resa obsoleta, previa segnalazione sul forum, se nessuno si propone per l'adozione.


Debian-swirl.png Versioni Compatibili

Debian 6 "squeeze"
Debian 7 "wheezy"

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. È 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 creare 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.

Utilizzo

Il nostro repository SVN è ora accessibile all'indirizzo:

https://ip.del.nostro.server/svn/myproject

Per la creazione di progetti e l'utilizzo dei client SVN si veda ad esempio l'ottima guida di HTML.it.




Guida scritta da: Ferdybassi 11:46, 09 mar 2014 (CET) Swirl-auth20.png Debianized 20%
Estesa da:
Verificata da:

Verificare ed estendere la guida | Cos'è una guida Debianized