Buildout: installazione manuale

Per chi usa debian/ubuntu nn ha senso fare l’installazione manuale altro che per comprender i passaggi. Queste istruzioni dovrebbero funzionare su tutte le distro Linux e Mac Os fatte le debite modifiche sulle librerie da installare e sulle modalità specifiche di ogni distro.

  1. Per potere compilare i vari pacchetti che possono servire suggeriscodi installare:

    python-dev, libpq-dev,  postgresql-server-dev-8.4 | postgresql-dev ,
    libxslt1-dev, libsasl2-dev, libjpeg62 | libjpeg8,
    libjpeg8-dev | libjpeg62-dev, libfreetype6,
    libfreetype6-dev, zlib1g-dev, python-uno, mercurial, libldap2-dev
    

    in particolare:

    libsasl2-dev

    serve per compilare ldap, richiesto da django-ldap-groups e fornisce sasl.h

    libxslt1-dev

    è necessario per compilare lxml

    libpq-dev

    è necessario per compilare psycopg2

    libjpeg62 | libjpeg8

    per PIL con render jpg

  2. Occorre configurare una cache locale ed il puntatore ai repository

    ~ $ cat ~/.buildout/default.cfg-
    
    [buildout]
    eggs-directory = /home/tuonome/.buildout/eggs
    download-cache = /home/tuonome/.buildout/download-cache
    
    [thunder]
    jmb2 = /usr/local/src/hg/thunder/jmb2
    # jmb2 = http://dev@hg.thundersystems.it/jumbo2/
    # jmb2 = http://read:letmeread@hg.thundersystems.it/jumbo2/
    extra-paths = /home/local/.buildout/extra-path
    

    La sezione [thunder] imposta invece la posizione dei repository. Delle 3 versioeni proposte per la variabile jmb2:

    • la prima punta alla copia locale invece che a quella remota per ovvii vantaggi di velocità. Ricordate che così facendo non esiste un meccanismo automatico per aggiornare la copia locale

    • la seconda suppone che abbiate una chiave sul server di Thunder

    • la terza è una opzione in sola lettura

  3. Crea una cartella con dei link a librerie che vuoi vengano viste dal sistema isolato ma che non vuoi dovere compilare in buildout. Useremo questa princialmente per evitare di ricompilare la libreria uno di OpenOffice/LibreOffice:

    mkdir ~/.buildout/extra-path
    cd  ~/.buildout/extra-path
    ln -s /usr/lib/python2.7/dist-packages/uno.py
    ln -s /usr/lib/python2.7/dist-packages/unohelper.py
    

    Nota che buildout NON espande ~ che va quindi scritta in esplicito. La cartella della cache e quella delle egg non sono indispensabili ma accelerano immensamente il deploy.

  4. Mettete in una cartella locale che sia nel PATH di sistema o che sia stata da voi aggiunta nel PATH (ad es. in .bashrc PATH=$PATH:~/.jmb-bin) una copia di tutte le script da noi usate

    Ad esempio:

    mkdir -p ~/src/jmb
    cd ~/src/jmb
    hg clone http://read@hg.thundersystems.it/tools/thunder-buildout
    echo 'PATH=$PATH:~/src/jmb/thunder-buildout/bin' >> ~/.bashrc
    . ~/.bashrc