MegaLab.it
Stampa Articolo
Aperiodico gratuito di informatica
 
20090625115954_737063149_20090625115932_18826826_sl_sync.png

Guida: predisporre un server Subversion (SVN) su CentOS

a cura di Zane
25/10/2011 - articolo
Linux & Open Source - L'utilizzo di un sistema per il controllo di versione è un'enorme comodità quando si gestisce un progettino personale, ma un vero e proprio "must" per ottimizzare il lavoro di gruppo. Fortunatamente, installare la componente "server" di Subversion su CentOS è facilissimo.

Permettetemi di presentarvi il software oggetto di questo articolo con un breve aneddoto.

Nell'autunno del lontano 2007, avevamo ormai gettato le primissime basi di quella che sarebbe poi divenuta la web application che sospinge ancora oggi MegaLab.it.

Con l'aumentare delle linee di codice e della complessità del progetto, emersero però rapidamente una serie di situazioni difficili da gestire:

La via d'uscita per sbrogliare la matassa si è presentata sotto il nome di Subversion (noto anche come SVN). Si tratta di un'applicazione, distribuita con licenza GPL (open source) ed utilizzabile quindi liberamente anche per scopi professionali, da installarsi su una macchina "centrale".

SVN utilizza uno specifico protocollo per "dialogare" con le postazioni degli sviluppatori: una volta stabilito il collegamento, il client installato sul PC si occupa automaticamente di generare una lista di tutti i file modificati e di spedirli al server, il quale li memorizza in quello che, concettualmente, è un "database" interno.

Similmente, gli altri client autorizzati possono richiedere di ricevere tutto il materiale aggiornato e proporre il proprio.

In caso due postazioni avessero lavorato allo stesso documento, l'infrastruttura tenta di fondere in maniera automatica le rispettive novità, riducendo al minimo gli sprechi di tempo.

E se si rende necessario recuperare un vecchio file ormai sovrascritto o cancellato? Nessun problema: il server conserva infatti tutto quanto e, grazie anche al supporto dei commenti da inserirsi parallelamente ad ogni operazione, localizzare e ripristinare il materiale d'interesse è semplicissimo.

Nel corso di questo articolo, illustreremo come predisporre il server centrale ed il primo progetto. Successivamente, in "Checkout, commit e update da un client Windows: guida operativa a TortoiseSVN", vedremo come interagire con esso tramite un client.

CentOS, Internet e accesso root

Subversion e cloni vari sono disponibili per pressoché qualsiasi piattaforma. In questa sede, mi occuperò dell'installazione su una macchina dotata della distribuzione Linux CentOS. Per prima cosa, assicuratevi quindi di disporre di un calcolatore governato da questo sistema operativo: in caso così non fosse, consultate "Guida semplificata all'installazione di CentOS".

Sinceratevi altresì che il computer sul quale volete installare Subversion sia in grado di accedere ad Internet, perlomeno per la durata dell'installazione.

Ricordate che è necessario svolgere tutte le operazioni seguenti con i privilegi di root: per la massima comodità, vi raccomando caldamente di accedere direttamente al sistema con tale account.

Se preferite utilizzare il vostro utente deprivilegiato, potrebbe essere sufficiente lanciare i comandi proposti anteponendo la striga sudo  ad ognuno di essi, ma non ho avuto modo di testare questo scenario.

Installare Subversion

Installare il software vero e proprio è facilissimo: aprite un'istanza di terminale da Applications -> Accessories-> Terminal ed impartite yum install subversion -y.

Attendete qualche istante ed il gioco è fatto.

Preparare la cartella

Dovete ora procedere con la creazione della cartella principale che conterrà tutto il materiale.

Siccome sarà indispensabile indicare espressamente questo percorso sui vari client, vi raccomando vivamente di creare la directory in questione a livello root (/) ed utilizzare un nome molto breve (sì, amici Linuxisti esperti, è chiaro che potreste anche posizionare la cartella in un percorso a piacere ed utilizzare un link simbolico, ma stiamo cercando di semplificare!).

In questo esempio la chiameremo /repo: per realizzarla rapidamente, usate mkdir /repo oppure procedete da interfaccia grafica tramite Nautilus.

Creare il progetto

A questo punto, possiamo creare il nostro progetto: lanciate svnadmin create /repo/mioprogetto1 per predisporre automaticamente tutto il ramo di sottocartelle e file necessari ad un ipotetico progetto chiamato, appunto, mioprogetto1

MLIShot_20110626114047.jpg

Regole di accesso

Per impostazione predefinita, Subversion è configurato di modo da consentire pubblicamente l'accesso in lettura, ma restringere ai soli utenti registrati la scrittura.

Se non siete paladini dell'open source e desiderate limitare anche la visione dei documenti ai soli possessori di credenziali di log-in valide, proseguite come segue.

Lanciate gedit /repo/mioprogetto1/conf/svnserve.conf per aprire il file di configurazione principale del progetto appena creato ed individuate poi (pulsante Find) le due righe che recitano quanto segue:

Modificatele entrambe di modo che combacino con queste istruzioni

MLIShot_20110626114506.jpg

Prima di chiudere e salvare il file, scorrete poche righe più in basso ed eliminate il cancelletto (#) dalla riga # password-db = passwd: a modifica effettuata, si leggerà solamente password-db = passwd

MLIShot_20110626114554.jpg

Creare gli account

Procediamo con la creazione degli account che saranno abilitati ad accedere al progetto.

Lanciate gedit /repo/mioprogetto1/conf/passwd ed inserite, uno sotto l'altro alla fine del file, le coppie di nomi utente e relative password nel formato NomeUtente=Password

MLIShot_20110615173103.jpg

Salvate e chiudete gedit.

Avviare ed auto-avviare il servizio

A questo punto, il software dovrebbe essere pronto all'uso. Impartite service svnserve start per avviare il relativo servizio. In caso tutto sia funzionante, verrà mostrato l'incoraggiante OK verde.

Impostate il demone di modo che si auto-avvii insieme al sistema operativo con chkconfig svnserve on (oppure spuntando la casella di controllo relativa a svnserve e cliccando quindi il pulsante Save in System -> Administration -> Services)

MLIShot_20110615173216.jpg

Aprire la porta sul firewall

Ora che il servizio è operativo, dobbiamo far sì che sia raggiungibile!

Per prima cosa, apriamo la porta sul firewall: seguite System -> Administration -> Security Level and Firewall per lanciare il pannello di configurazione.

Cliccate sul pulsante Add in basso a destra, immettete 3690, premete Ok e confermate ripetutamente fino a chiudere il tool

MLIShot_20110615173827.jpg

Configurare il router

Se per il collegamento ad Internet del server viene utilizzato un router, è necessario configurare anche l'inoltro della stessa porta (port forwarding) verso la macchina in questione (per risalire all'indirizzo IP locale, fate riferimento all'articolo "Configurare indirizzo IP e DNS su CentOS").

La procedura esatta varia da modello a modello. Per quanto riguarda il diffusissimo Alice Gate fornito in comodato da Telecom Italia, è disponibile l'articolo "Aprire porte TCP/UDP su modem-router Alice gate 2 Plus e 2 Plus Wi-Fi". Per tutti gli altri apparecchi, dovrete fare riferimento al libretto di istruzioni.

Questo passaggio, chiaramente, è necessario solamente in caso desideriate rendere raggiungibile il servizio anche attraverso Internet: se invece il server ed i vari client sui quali lavorate fanno parte della stessa rete locale (LAN), potete garantirvi un po' di sicurezza in più evitando di rendere visibile Subversion all'esterno.

Connettersi dal client

Arrivati a questo punto, dovrebbe essere tutto pronto al 100%. Non vi resta che connettervi da uno dei client! La procedura è stata mostrata in "Checkout, commit e update da un client Windows: guida operativa a TortoiseSVN".

Per generare automaticamente una copia locale..

Trattandosi di un software molto flessibile, Subversion espone moltissimi altri comandi e parametri: arrivati a questo punto tuttavia, la base per iniziare a lavorare concretamente è stata indubbiamente gettata.

Un ultimo passaggio che però risulta interessante in molte circostanze è la generazione ed il mantenimento di una copia di lavoro anche sul server: ho proposto la semplice procedura in "Eseguire automaticamente un "update" ad ogni "commit" con Subversion (SVN)".

Per saperne di più

Tutti gli articoli inerenti Subversion pubblicati da MegaLab.it sono raccolti sotto l'omonimo tag.

Il punto di riferimento ufficiale è invece il completissimo libro gratuito (in inglese) Version Control with Subversion consultabile liberamente all'indirizzo svnbook.red-bean.com.

MegaLab.it rispetta la tua privacy. Per esercitare i tuoi diritti scrivi a: privacy@megalab.it .

Copyright 2008 MegaLab.it - Tutti i diritti sono riservati