<page xmlns="http://projectmallard.org/1.0/"
      type="topic" style="task"
      id="install-rpm5" xml:lang="fr">

<info>
  <desc>Installation et configuration sur un système RHEL ou CentOS version 5.x</desc>
  <link type="guide" xref="install"/>
  <title type="sort">2.1 - centos</title>
</info>

<title>Installation sur RHEL ou CentOS 5</title>

<p>
</p>

<section id="yum-python26">
<title>Python 2.6</title>
<p>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 <link href="https://fedoraproject.org/wiki/EPEL">Extra
Packages for Enterprise Linux</link> (EPEL) :
</p>
<screen>
<output style="prompt">/tmp# </output><input>wget http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm</input>
<output style="prompt">/tmp# </output><input>rpm -i epel-release-5-4.noarch.rpm</input>
<output style="prompt">/tmp# </output><input>rm  epel-release-5-4.noarch.rpm</input>
</screen>
<note>
<p>
Dans la première URL, remplacer <code>i386</code> par <code>x86_64</code> si c'est l'architecture d'installation du système.
Lire la page <link href="http://fedoraproject.org/wiki/EPEL">http://fedoraproject.org/wiki/EPEL</link> pour mieux connaître
ce dépôt.
</p>
</note>
<p>Puis installer le paquet <code>python26</code> et le système <code>virtualenv</code> associé :</p>
<screen>
<output style="prompt">/tmp# </output><input>yum install python26</input>
<output style="prompt">/tmp# </output><input>yum install python26-virtualenv</input>
</screen>
</section>

<section id="paquet">
<title>Installation du paquet</title>
<p>Télécharger le paquet <code>.rpm</code> sur le projet PolyNum dans SourceSup : <link href="https://sourcesup.renater.fr/frs/?group_id=859">https://sourcesup.renater.fr/frs/?group_id=859</link> et l'installer avec yum :</p>
<screen>
<output style="prompt"># </output><input>yum --nogpgcheck install polynum-*.rpm</input>
</screen>
</section>

<section id="virtualenv">

<title>Création du <em>virtualenv</em></title>

<p>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 <em>environnement
virtuel</em> Python (<em>virtualenv</em>).</p>

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

<screen>
<output style="prompt"># </output><input>/opt/polynum/bin/polynum-build-virtualenv</input>
<output>
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

</output>
</screen>

<note>
<p>L'installation peut prendre quelques minutes.</p>
<p>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 <code>PROXY</code> :</p>
<screen>
# PROXY=user:password@proxy.server:port polynum-build-virtualenv
</screen>
</note>

</section>

<section id="yum-python26">
<title>Connexion à PostgreSQL avec <code>psycopg2</code></title>
<p>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é <code>psycopg2</code>.</p>
<p>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
<code>virtualenv</code>. Voici la procédure pour cela.</p>
<steps>
<item>
<title>Installation des composants systèmes nécessaires</title>
<screen>
<output style="prompt">[root@server ~]# </output><input>yum install postgresql84-devel gcc</input>
</screen>
</item>
<item>
<title>Ajout de <code>psycopg2</code> dans le <code>virtualenv</code></title>
<screen>
<output style="prompt">[root@server ~]# </output><input>cd /opt/polynum/virtualenv</input>
<output style="prompt">[root@server virtualenv]# </output><input>. bin/activate</input>
<output style="prompt">(virtualenv)[root@localhost virtualenv]# </output><input>pip install psycopg2</input>
</screen>
</item>
<item>
<title>Vérification</title>
<screen>
<output style="prompt">(virtualenv)[root@localhost virtualenv]# </output><input>python -c "import psycopg2; print psycopg2.__doc__"</input>
<output>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
(...)
</output>
</screen>
</item>
</steps>
</section>

</page>
