bzr
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.
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.
- Prima di tutto è necessario preparare l’ambiente creando le directory utente necessarie:
cd
mkdir bin
mkdir lib
mkdir lib/python
mkdir man - 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.4Su DreamHost $PYTHONPATH e $MANPATH non sono definite quindi vanno forzate. Per sapere se le vostre variabili sono già definite:
echo $PYTHONPATHNel 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.
- 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 - 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
- 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=$HOMELe 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 - 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.
- Test finale:
cdSe ricevete il riepilogo dei comandi, tutto funziona correttamente. Se ricevete qualche messaggio di errore che reclama librerie… Le variabili Path non sono corrette.
bzr help
Buon divertimento con Bazaar! Nel prossimo articolo vi scrivo come usarlo brevemente dopo di che… DIY!
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.













Commenti recenti
4 giorni 21 ore fa
4 giorni 21 ore fa
3 settimane 6 giorni fa
4 settimane 3 giorni fa
6 settimane 1 giorno fa
6 settimane 3 giorni fa
6 settimane 5 giorni fa
9 settimane 2 ore fa
22 settimane 4 giorni fa
23 settimane 2 giorni fa