Installation sur RHEL ou CentOS 5

Python 2.6

La version 2.4 de Python livrée avec RHEL/CentOS 5 n'est pas suffisante pour faire tourner Django et donc Polynum. Il faut installer la version 2.6 disponible dans le dépôt Extra Packages for Enterprise Linux (EPEL) :

/tmp# wget http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm
/tmp# rpm -i epel-release-5-4.noarch.rpm
/tmp# rm  epel-release-5-4.noarch.rpm

Dans la première URL, remplacer i386 par x86_64 si c'est l'architecture d'installation du système. Lire la page http://fedoraproject.org/wiki/EPEL pour mieux connaître ce dépôt.

Puis installer le paquet python26 et le système virtualenv associé :

/tmp# yum install python26
/tmp# yum install python26-virtualenv

Installation du paquet

Télécharger le paquet .rpm sur le projet PolyNum dans SourceSup : https://sourcesup.renater.fr/frs/?group_id=859 et l'installer avec yum :

# yum --nogpgcheck install polynum-*.rpm

Création du virtualenv

Le paquet installe tous les composants systèmes nécessaires. L'application polynum nécessite en plus quelques modules Python indisponibles sur CentOS (ou pas dans les versions requises). Pour les ajouter, on créé un environnement virtuel Python (virtualenv).

Le paquet fourni un script qui automatise la création de ce virtualenv, il suffit de lancer la commande suivante :

# /opt/polynum/bin/polynum-build-virtualenv

Building PolyNum virtualenv in /opt/polynum/virtualenv
(detailed log in /opt/polynum/virtualenv/install.log)

New python executable in virtualenv/bin/python
(...)
Successfully installed django-crispy-forms django-sekizai pypdf
                       flup django-debug-toolbar gunicorn django-cas
                       django-admin-tools django-classy-tags
Cleaning up...

Creating .pyc files (compileall) ....done

PolyNum virtualenv created in /opt/polynum/virtualenv

L'installation peut prendre quelques minutes.

Elle télécharge les paquets depuis des sites HTTP et HTTPS : la machine doit donc avoir accès à Internet à ce moment. Si la machine doit passer par un proxy, ajoutez une variable d'environnement PROXY :

# PROXY=user:password@proxy.server:port polynum-build-virtualenv

Connexion à PostgreSQL avec psycopg2

Lors du passage en production, la base de donnée devra être PostgreSQL. PolyNum aura besoin du module Python pour l'accès à PostgreSQL, nommé psycopg2.

Cependant ce module n'est pas disponible dans les dépôts «réputés» pour CentOS 5, il faut donc l'installer en tant que paquet Python dans le virtualenv. Voici la procédure pour cela.

  1. Installation des composants systèmes nécessaires

    [root@server ~]# yum install postgresql84-devel gcc
  2. Ajout de psycopg2 dans le virtualenv

    [root@server ~]# cd /opt/polynum/virtualenv
    [root@server virtualenv]# . bin/activate
    (virtualenv)[root@localhost virtualenv]# pip install psycopg2
  3. Vérification

    (virtualenv)[root@localhost virtualenv]# python -c "import psycopg2; print psycopg2.__doc__"
    A Python driver for PostgreSQL
    
    psycopg is a PostgreSQL_ database adapter for the Python_ programming
    language. This is version 2, a complete rewrite of the original code to
    provide new-style classes for connection and cursor objects and other sweet
    candies. Like the original, psycopg 2 was written with the aim of being very
    small and fast, and stable as a rock.
    
    Homepage: http://initd.org/projects/psycopg2
    (...)