Ceci est une ancienne révision du document !
Odoo
Installation
Comme je compte développer pour Odoo, j'ai voulu mettre en place un chroot et compiler Odoo dedans. Pour avoir quelque chose de facilement sauvegardable et réplicable.
chroot
Les détails sur la configuration d'une Debian dans un chroot sont sur cette page. Voici un résumé :
# debootstrap --arch=amd64 --include=locales-all stretch chroot/debian-stretch http://ftp.be.debian.org/debian/
$ vim launch-debian-stretch.sh
#!/bin/bash
cd /home/simon/chroot/debian-stretch
sudo mount --bind /proc proc
sudo mount --bind /sys sys
sudo chroot . /bin/bash
sudo umount sys
sudo umount proc
$ chmod +x launch-debian-stretch.sh
Pour se connecter à l'installation “chrootée” :
# ./launch-debian-stretch.sh
Configuration avant d'installer Odoo
Une fois sur la Debian “chrootée”, il faut installer “sudo” (utilisé dans les exemples du livre “Odoo 10 Development Essentials”)
# apt install sudo
Création d'un user “odoo” et initialisation du mot de passe :
# useradd -m -g sudo -s /bin/bash odoo
# passwd odoo
Entrez le nouveau mot de passe UNIX :
Retapez le nouveau mot de passe UNIX :
passwd: password updated successfully
Connexion sur le compte “odoo” et vérifications :
root@laptop:/# su odoo
odoo@laptop:/$ whoami
odoo
odoo@laptop:/$ echo $HOME
/home/odoo
Installer les prérequis à Odoo
Donc, sur notre installation “chroot”, on installe les prérequis pour commencer à travailler avec Odoo.
# apt install git curl
Installation de NPM :
# curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
## Installing the NodeSource Node.js v8.x repo...
## Populating apt-get cache...
+ apt-get update
Ign:1 http://ftp.be.debian.org/debian stretch InRelease
Atteint:2 http://ftp.be.debian.org/debian stretch Release
Lecture des listes de paquets... Fait
## Installing packages required for setup: apt-transport-https lsb-release...
+ apt-get install -y apt-transport-https lsb-release > /dev/null 2>&1
## Confirming "stretch" is supported...
+ curl -sLf -o /dev/null 'https://deb.nodesource.com/node_8.x/dists/stretch/Release'
## Adding the NodeSource signing key to your keyring...
+ curl -s https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add -
OK
## Creating apt sources list file for the NodeSource Node.js v8.x repo...
+ echo 'deb https://deb.nodesource.com/node_8.x stretch main' > /etc/apt/sources.list.d/nodesource.list
+ echo 'deb-src https://deb.nodesource.com/node_8.x stretch main' >> /etc/apt/sources.list.d/nodesource.list
## Running `apt-get update` for you...
+ apt-get update
Ign:1 http://ftp.be.debian.org/debian stretch InRelease
Atteint:2 http://ftp.be.debian.org/debian stretch Release
Réception de:4 https://deb.nodesource.com/node_8.x stretch InRelease [4.647 B]
Réception de:5 https://deb.nodesource.com/node_8.x stretch/main Sources [762 B]
Réception de:6 https://deb.nodesource.com/node_8.x stretch/main amd64 Packages [1.008 B]
6.417 o réceptionnés en 0s (7.096 o/s)
Lecture des listes de paquets... Fait
## Run `apt-get install nodejs` (as root) to install Node.js v8.x and npm
# apt install nodejs
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture des informations d'état... Fait
The following additional packages will be installed:
libpython-stdlib libpython2.7-minimal libpython2.7-stdlib python
python-minimal python2.7 python2.7-minimal
Paquets suggérés :
python-doc python-tk python2.7-doc binutils binfmt-support
Les NOUVEAUX paquets suivants seront installés :
libpython-stdlib libpython2.7-minimal libpython2.7-stdlib nodejs
python python-minimal python2.7 python2.7-minimal
0 mis à jour, 8 nouvellement installés, 0 à enlever et 0 non mis à jour.
Il est nécessaire de prendre 16,6 Mo dans les archives.
Après cette opération, 74,3 Mo d'espace disque supplémentaires seront utilisés.
Souhaitez-vous continuer ? [O/n]
Réception de:1 http://ftp.be.debian.org/debian stretch/main amd64 libpython2.7-minimal amd64 2.7.13-2 [389 kB]
Réception de:2 http://ftp.be.debian.org/debian stretch/main amd64 python2.7-minimal amd64 2.7.13-2 [1.383 kB]
Réception de:3 https://deb.nodesource.com/node_8.x stretch/main amd64 nodejs amd64 8.7.0-1nodesource1 [12,5 MB]
Réception de:4 http://ftp.be.debian.org/debian stretch/main amd64 python-minimal amd64 2.7.13-2 [40,5 kB]
Réception de:5 http://ftp.be.debian.org/debian stretch/main amd64 libpython2.7-stdlib amd64 2.7.13-2 [1.895 kB]
Réception de:6 http://ftp.be.debian.org/debian stretch/main amd64 python2.7 amd64 2.7.13-2 [285 kB]
Réception de:7 http://ftp.be.debian.org/debian stretch/main amd64 libpython-stdlib amd64 2.7.13-2 [20,0 kB]
Réception de:8 http://ftp.be.debian.org/debian stretch/main amd64 python amd64 2.7.13-2 [154 kB]
16,6 Mo réceptionnés en 11s (1.488 ko/s)
E: Impossible d'écrire le journal (Est-ce que /dev/pts est monté ?) - posix_openpt (19: Aucun périphérique de ce type)
Sélection du paquet libpython2.7-minimal:amd64 précédemment désélectionné.
(Lecture de la base de données... 20634 fichiers et répertoires déjà installés.)
Préparation du dépaquetage de .../0-libpython2.7-minimal_2.7.13-2_amd64.deb ...
Dépaquetage de libpython2.7-minimal:amd64 (2.7.13-2) ...
Sélection du paquet python2.7-minimal précédemment désélectionné.
Préparation du dépaquetage de .../1-python2.7-minimal_2.7.13-2_amd64.deb ...
Dépaquetage de python2.7-minimal (2.7.13-2) ...
Sélection du paquet python-minimal précédemment désélectionné.
Préparation du dépaquetage de .../2-python-minimal_2.7.13-2_amd64.deb ...
Dépaquetage de python-minimal (2.7.13-2) ...
Sélection du paquet libpython2.7-stdlib:amd64 précédemment désélectionné.
Préparation du dépaquetage de .../3-libpython2.7-stdlib_2.7.13-2_amd64.deb ...
Dépaquetage de libpython2.7-stdlib:amd64 (2.7.13-2) ...
Sélection du paquet python2.7 précédemment désélectionné.
Préparation du dépaquetage de .../4-python2.7_2.7.13-2_amd64.deb ...
Dépaquetage de python2.7 (2.7.13-2) ...
Sélection du paquet libpython-stdlib:amd64 précédemment désélectionné.
Préparation du dépaquetage de .../5-libpython-stdlib_2.7.13-2_amd64.deb ...
Dépaquetage de libpython-stdlib:amd64 (2.7.13-2) ...
Paramétrage de libpython2.7-minimal:amd64 (2.7.13-2) ...
Paramétrage de python2.7-minimal (2.7.13-2) ...
Linking and byte-compiling packages for runtime python2.7...
Paramétrage de python-minimal (2.7.13-2) ...
Sélection du paquet python précédemment désélectionné.
(Lecture de la base de données... 21380 fichiers et répertoires déjà installés.)
Préparation du dépaquetage de .../python_2.7.13-2_amd64.deb ...
Dépaquetage de python (2.7.13-2) ...
Sélection du paquet nodejs précédemment désélectionné.
Préparation du dépaquetage de .../nodejs_8.7.0-1nodesource1_amd64.deb ...
Dépaquetage de nodejs (8.7.0-1nodesource1) ...
Traitement des actions différées (« triggers ») pour mime-support (3.60) ...
Paramétrage de nodejs (8.7.0-1nodesource1) ...
Paramétrage de libpython2.7-stdlib:amd64 (2.7.13-2) ...
Paramétrage de python2.7 (2.7.13-2) ...
Paramétrage de libpython-stdlib:amd64 (2.7.13-2) ...
Paramétrage de python (2.7.13-2) ...
Odoo a apparemment besoin de “less” (qui n'a rien à voir avec less…).
# npm install -g less less-plugin-clean-css
/usr/bin/lessc -> /usr/lib/node_modules/less/bin/lessc
+ less@3.0.0-alpha.3
+ less-plugin-clean-css@1.5.1
added 17 packages in 8.182s
Installer Odoo
root@laptop:/# su odoo
odoo@laptop:/$ cd $HOME/
odoo@laptop:~$ ls
odoo@laptop:~$ mkdir ~/odoo-dev
odoo@laptop:~$ cd odoo-dev/
odoo@laptop:~/odoo-dev$ git clone https://github.com/odoo/odoo.git -b 10.0 --depth=1
Clonage dans 'odoo'...
remote: Counting objects: 23386, done.
remote: Compressing objects: 100% (18552/18552), done.
remote: Total 23386 (delta 7413), reused 11138 (delta 4087), pack-reused 0
Réception d'objets: 100% (23386/23386), 111.17 MiB | 420.00 KiB/s, fait.
Résolution des deltas: 100% (7413/7413), fait.
Extraction des fichiers: 100% (21207/21207), fait.
Il y a un script pour installer les dépendances d'odoo :
$ ./odoo/setup/setup_dev.py setup_deps
Malheureusement, il plante sur “python-pypdf”, me disant qu'il ne peut pas être installé. On regarde ce qui existe dans les dépôts : python-pypdf2
$ sudo apt install python-pypdf2
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture des informations d'état... Fait
Les NOUVEAUX paquets suivants seront installés :
python-pypdf2
0 mis à jour, 1 nouvellement installés, 0 à enlever et 0 non mis à jour.
Il est nécessaire de prendre 57,0 ko dans les archives.
Après cette opération, 271 ko d'espace disque supplémentaires seront utilisés.
Réception de:1 http://ftp.be.debian.org/debian stretch/main amd64 python-pypdf2 all 1.26.0-2 [57,0 kB]
57,0 ko réceptionnés en 0s (199 ko/s)
Sélection du paquet python-pypdf2 précédemment désélectionné.
(Lecture de la base de données... 25135 fichiers et répertoires déjà installés.)
Préparation du dépaquetage de .../python-pypdf2_1.26.0-2_all.deb ...
Dépaquetage de python-pypdf2 (1.26.0-2) ...
Paramétrage de python-pypdf2 (1.26.0-2) ...
Malheureusement, ça ne lui convient pas… Je regarde si on peut installer l'ancienne version via pip :
$ sudo apt install python-pip
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture des informations d'état... Fait
The following additional packages will be installed:
binutils build-essential cpp cpp-6 dbus dpkg-dev fakeroot g++ g++-6 gcc
gcc-6 gir1.2-glib-2.0 libalgorithm-diff-perl libalgorithm-diff-xs-perl
libalgorithm-merge-perl libasan3 libatomic1 libc-dev-bin libc6-dev libcc1-0
libcilkrts5 libdbus-1-3 libdbus-glib-1-2 libdpkg-perl libexpat1-dev
libfakeroot libfile-fcntllock-perl libgcc-6-dev libgirepository-1.0-1
libglib2.0-0 libglib2.0-data libgomp1 libicu57 libisl15 libitm1 liblsan0
libmpc3 libmpfr4 libmpx2 libpython-all-dev libpython-dev libpython2.7
libpython2.7-dev libquadmath0 libstdc++-6-dev libtsan0 libubsan0 libxml2
linux-libc-dev make manpages manpages-dev python-all python-all-dev
python-cffi-backend python-crypto python-cryptography python-dbus python-dev
python-enum34 python-gi python-idna python-ipaddress python-keyring
python-keyrings.alt python-pip-whl python-pkg-resources python-pyasn1
python-secretstorage python-setuptools python-six python-wheel python-xdg
python2.7-dev sgml-base shared-mime-info xdg-user-dirs xml-core
Paquets suggérés :
binutils-doc cpp-doc gcc-6-locales default-dbus-session-bus
| dbus-session-bus debian-keyring g++-multilib g++-6-multilib gcc-6-doc
libstdc++6-6-dbg gcc-multilib autoconf automake libtool flex bison gdb
gcc-doc gcc-6-multilib libgcc1-dbg libgomp1-dbg libitm1-dbg libatomic1-dbg
libasan3-dbg liblsan0-dbg libtsan0-dbg libubsan0-dbg libcilkrts5-dbg
libmpx2-dbg libquadmath0-dbg glibc-doc libstdc++-6-doc make-doc man-browser
python-crypto-dbg python-crypto-doc python-cryptography-doc
python-cryptography-vectors python-dbus-dbg python-dbus-doc
python-enum34-doc python-gi-cairo gnome-keyring libkf5wallet-bin
gir1.2-gnomekeyring-1.0 python-fs python-gdata python-kde4 python-keyczar
doc-base python-secretstorage-doc python-setuptools-doc sgml-base-doc
debhelper
Les NOUVEAUX paquets suivants seront installés :
binutils build-essential cpp cpp-6 dbus dpkg-dev fakeroot g++ g++-6 gcc
gcc-6 gir1.2-glib-2.0 libalgorithm-diff-perl libalgorithm-diff-xs-perl
libalgorithm-merge-perl libasan3 libatomic1 libc-dev-bin libc6-dev libcc1-0
libcilkrts5 libdbus-1-3 libdbus-glib-1-2 libdpkg-perl libexpat1-dev
libfakeroot libfile-fcntllock-perl libgcc-6-dev libgirepository-1.0-1
libglib2.0-0 libglib2.0-data libgomp1 libicu57 libisl15 libitm1 liblsan0
libmpc3 libmpfr4 libmpx2 libpython-all-dev libpython-dev libpython2.7
libpython2.7-dev libquadmath0 libstdc++-6-dev libtsan0 libubsan0 libxml2
linux-libc-dev make manpages manpages-dev python-all python-all-dev
python-cffi-backend python-crypto python-cryptography python-dbus python-dev
python-enum34 python-gi python-idna python-ipaddress python-keyring
python-keyrings.alt python-pip python-pip-whl python-pkg-resources
python-pyasn1 python-secretstorage python-setuptools python-six python-wheel
python-xdg python2.7-dev sgml-base shared-mime-info xdg-user-dirs xml-core
0 mis à jour, 79 nouvellement installés, 0 à enlever et 0 non mis à jour.
Il est nécessaire de prendre 89,8 Mo dans les archives.
Après cette opération, 277 Mo d'espace disque supplémentaires seront utilisés.
Souhaitez-vous continuer ? [O/n]