Breve guida a Bazaar versioning system dei siti su DreamHost

Dicevo nei precedenti articoli di come sia facile gestire i progetti sotto sistema di versioning Bazaar, al contrario di SVN che tra l'altro inserisce una directory nascosta all'interno dei nostri file e ci obbliga ad "esportare" il prodotto finito.

La comodità di usare Bazaar su DreamHost è che si possono mettere i propri siti all'interno del sistema di versioning ed averli sempre (quasi in diretta) aggiornati, dopo aver testato gli update in locale sul proprio PC (lamp/wamp).

Prima di tutto occorre identificarsi: bzr whoami
bzr whoami "Tassoman "

Una volta identificati si può creare una repository: bzr init

La repository viene creata nella home directory dell'utente dreamhost, la quale contiene le root di ogni sito. Quindi per tenere sotto controllo un sito: bzr add 2nd-ld.tld

Per confermare le azioni si committa come su svn: bzr commit -m "Second Level Domain at Top Level Domain added into versioning system"

Ora abbiamo una copia del nostro sito in produzione. Per averne una copia locale bisogna fare il checkout sul proprio PC: bzr checkout sftp://2nd-ld.tld/home/username

Il sito produttivo sarà scaricato in locale, sulla directory prescelta potremo configurare un server di sviluppo locale e testare le nostre modifiche che saranno poi inviate tramite commit.

touch test.txt
bzr add test.txt
bzr commit

Una volta che gli aggiornamenti al sito locale saranno completati, potremo importare le modifiche facendo update sulla console remota dell'hosting:

ssh 2nd-ld.tld
Password:
bzr update

Ricordate, così facendo il DB non viene aggiornato e rimane fuori dal sistema di versioning. Per tenerlo all'interno del sistema si dovrà prevedere il dump del database.

La documentazione di Bazaar è piuttosto chiara anche se disponibile soltanto in inglese. Vi consiglio: Bazaar in five minutes oppure Bazaar Switching per chi già usa altri sistemi di versioning.

Come installare Bazaar su un hosting con console remota SSH tipo DreamHost

Se si dispone di un hosting in cui è stato installato e reso disponibile python2.4 si può procedere all'installazione del sistema di versioning Bazaar (BZR).

Il sistema distribuito di versioni Bazaar è disponibile per qualsiasi sistema operativo tra i più diffusi: Linux, Mac, ed anche Windows.

Se non si dispone di un hosting con console remota, si può chiedere un preventivo a Bologna Informatica, offre hosting professionale per le piccole e medie imprese. Oppure registrarsi su DreamHost approfittando dello sconto offerto dal codice invito: BOINFO07

Prendiamo come esempio DreamHost come sistema di hosting. Ma credo che un qualsiasi altro hosting con console SSH possa andare bene.

  1. Prima di tutto è necessario preparare l'ambiente creando le directory utente necessarie:

    cd
    mkdir bin
    mkdir lib
    mkdir lib/python
    mkdir man

  2. In secondo luogo è necessario istruire la console remota ad utilizzare le proprie directory utente con priorità su quelle di sistema:
    nano -w ~/.bash_profile
    nel file ~/.bash_profile vanno inserite le seguenti variabili. export PATH=$HOME/bin:$PATH
    export MANPATH=$HOME/man:/usr/share/man
    export PYTHONPATH=$HOME/lib/python:/usr/lib/python2.4:/usr/local/lib/python2.4:/usr/include/python2.4

    Su DreamHost $PYTHONPATH e $MANPATH non sono definite quindi vanno forzate. Per sapere se le vostre variabili sono già definite: echo $PYTHONPATH

    Nel caso in cui siano già definite, è meglio riprenderle ed inserire il valore a quelle esistenti come ho fatto in $PATH che appunto era già definita.

  3. Dopo aver controllato che tutte le variabili siano di sistema, bisogna crearsi un link simbolico che punta esplicitamente a python2.4 perché su DreamHost di default è installato python2.3.
    cd ~/bin
    ln -s /usr/bin/python2.4 python

    Per controllare la versione di python: python -V
  4. Se i percorsi sono corretti e le variabili configurate a dovere dovreste avere la versione 2.4.x. Lanciate python e provate ad includere qualche modulo default per essere certi che tutto funziona
  5. Se tutto funziona allora è possibile scaricare le librerie necessarie per usare Bazaar tramite SFTP (ssh):

    Scaricare i sorgenti delle librerie in una directory di appoggio. Estrarre i files usando tar zxf. Il comando per installare la libreria è il seguente: cd pylibrary-0.1.2
    python setup.py install --home=$HOME

    Le librerie saranno compilate ed installate nella home directory: /home/username/lib/python. Per accertarsi che siano correttamente caricate: python -c "import Crypto"
    python -c "import paramiko"
    python -c "import cElementTree"

    Se non si verificano messaggi di errore tutto funziona correttamente. Se il messaggio di errore segnala la mancanza della libreria, controllate che la variabile $PYTHONPATH sia corretta.

    Per ripetere l'installazione dei moduli python: rm -rf ~/lib/python/* Per ogni libreria inviare il comando: python setup.py clean

  6. A questo punto rimane da installare BZR, effettuate il download dei sorgenti di Bazaar nella directory di appoggio, ed inviate il comando di installazione. Potrebbe mancare il modulo Pyrex, nel caso installate anche quello.
  7. Test finale: cd
    bzr help
    Se ricevete il riepilogo dei comandi, tutto funziona correttamente. Se ricevete qualche messaggio di errore che reclama librerie... Le variabili Path non sono corrette.

Buon divertimento con Bazaar! Nel prossimo articolo vi scrivo come usarlo brevemente dopo di che... DIY!

Bazaar: software per gestire il controllo di versione distribuito

Bazaar (bzr) è un recente distributed versioning system sviluppato da Canonical per lo sviluppo del codice sorgente di Ubuntu.

Tra le caratteristiche che lo differenziano dal famoso Subversion (SVN) che a sua volta ha soppiantato Concurrent Versions System (CVS) ci sono: la facilità di installazione e manutenzione delle "repository", possibilità di gestire versioning non centralizzati e la leggerezza dei programmi scritti in Python.

Come sviluppatore autonomo ho preferito usare BZR per gestire i miei repository in modo da trovarmi su ogni mio PC il lavoro che non avevo concluso su un altro come mio solito.

Con poche operazioni è possibile installare Bazaar sulla maggiorparte degli hosting che permettono di avere un terminale remoto SSH. Come gli hosting professionali offerti da Bologna Informatica. Ma questa questione tecnica l'affronteremo nel prossimo articolo.

©MMVIII Bologna Informatica - p.i. 0123456789