grimboite/articles/sys/2016-08-09-centos-7.rst

89 lines
3.0 KiB
ReStructuredText

=================================
Python, Oracle, MSSQL et CentOS 7
=================================
:tags: centos, oracle, mssql, django, db
J'avais déjà parlé de la `configuration de Python sur CentOS 6 <{filename}/content/system/2015-03-09 python27-centos.md>`_; parce que je m'y perds constamment, voici un petit aide-mémoire pour la configuration de Python 3 sur CentOS 7.
* `EPEL <https://fedoraproject.org/wiki/EPEL>`_ = Extra Packages for Enterprise Linux.
* `SCL <https://wiki.centos.org/AdditionalResources/Repositories/SCL>`_ =
En gros, les EPEL sont des paquets maintenus par la communauté Fedora et rappatriés vers CentOS/RedHat. Les SCL sont des collections de packages remontés depuis RedHat.
Pour activer la dernière version des EPEL, tapez de vos petits doigts grassouillets:
.. code-block:: shell
wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
sudo rpm -Uvh epel-release-latest-7.rpm
Après l'activation des EPEL sur CentOS 7, ``pip`` n'est pas installé en version 3.4. Comme on en aura besoin pour installer les environnements virtuels, il y a deux manières de faire: soit on télécharge le paquet d'installation de pip, soit on passe par ``easy_install`` (qui est dispo, lui):
.. code-block:: shell
# valable pour les deux
wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -Uvh epel-release-7*.rpm
yum install epel-release
yum install git python34 htop unixODBC unixODBC-devel gcc-c++
# méthode 1
curl https://bootstrap.pypa.io/get-pip.py | python3
pip3 install virtualenvwrapper
# méthode 2
easy_install-3.4 pip
pip install virtualenvwrapper
Oracle
======
Rendez-vous sur la `page suivante <http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html>`_ pour y télécharger les fichiers suivants:
* oracle-instantclient12.1-basic
* oracle-instantclient12.1-sqlplus
* oracle-instantclient12.1-devel
Procédez ensuite à l'installation et ajoutez le *path* dans ``ldconfig``:
.. code-block:: shell
rpm -Uvh oracle-instantclient12.1-basic*
rpm -Uvh oracle-instantclient12.1-sqlplus
rpm -Uvh oracle-instantclient12.1-devel
echo "/usr/lib/oracle/12.1/client64/lib" >/etc/ld.so.conf.d/oracle.conf
ldconfig
Pour finir: ``pip install cx_Oracle -U``.
MMSQL
=====
Pour MMSQL, si vous avez suivez les étapes pas-à-pas, vous devriez déjà avoir les dépendances sur le serveur, grâce aux paquets ``unixODBC`` et ``unixODBC-devel``. Il est plus que probable que vous deviez également installer ``gcc-c++``.
Pour finir (again): ``pip install django-pyodbc-azure``.
Configuration
=============
.. code-block:: python
DATABASES = {
'sqlite_db': {
'ENGINE': 'django.db.backends.sqlite3',
[...]
},
'oracle_db' : {
'ENGINE' : 'django.db.backends.oracle',
[...]
},
'mssql_db' : {
'ENGINE':'sql_server.pyodbc',
[...]
},
}