Odoo 11 se presento en los Odoo days de 2017, como novedad principal Odoo pasa a funcionar con python 3 (aunque sigue siendo compatible con python 2) con el consiguiente aumento de rendimiento.
Odoo 11 se podía seguir instalando en Ubuntu 16.04, pero esa versión de Ubuntu no traía soporte python 3 por defecto. Como en mi blog me gusta hacer manuales sencillos decidí esperar a la publicación de Ubuntu 18.04 con soporte estándar de python 3.
Crear un usuario del sistema
Si estamos en un servidor es recomendable crear un usuario para lanzar el servidor de odoo, el usuario se puede crear como un usuario del sistema o como un usuario con acceso completo, yo prefiero crear un usuario con acceso completo y descargar en su directorio home todo el código.
Para crear un usuario podemos utilizar el script adduser y seguir los pasos.
sudo adduser odoo
Instalación de Postgresql
El motor de la base de datos de Odoo es postgres, esto no ha cambiado, en Ubuntu 18.04 viene con postgresql 10, cada nueva versión trae mejoras en rendimiento.
Tendremos que instalar el servidor y crear un usuario para conectarnos.
Instalar el servidor de postgresql
sudo apt-get install postgresql postgresql-client
Crear un usuario de base de datos llamado odoo con permiso para crear bases de datos (–createdb) y le ponemos una contraseña (–pwprompt)
sudo su postgres createuser --createdb --pwprompt odoo exit
Instalación de dependencias
Es necesario instalar una serie de dependencias para que Odoo funcione correctamente.
En esta versión de Ubuntu, al tener versiones mas modernas de las dependencias, la instalación se simplifica, y ya no es necesario configuración extra para dependencias como node o wkhtmltopdf.
sudo apt-get install python3 python3-pip fontconfig libxml2 libxml2-dev libxslt1.1 libxslt1-dev zlib1g liblcms2-2 libtiff5 tk tcl libpq5 libldap-2.4-2 libsasl2-2 libx11-6 libxext6 libxrender1 git libsasl2-dev libldap2-dev python3-passlib python3-babel python3-werkzeug python3-lxml python3-decorator python3-dateutil python3-psycopg2 python3-pil python3-psutil python3-jinja2 python3-reportlab python3-html2text python3-docutils python3-suds python3-pypdf2 wkhtmltopdf node-clean-css node-less
Editado 04/09/2018: En algún momento se me había colado una dependencia que faltaba:
sudo pip3 install requests
OBTENER EL CÓDIGO DE ODOO
Para obtener el código de Odoo hay varias alternativas, se puede descargar un nightly build, o descargarlo directamente desde git. Al descargarlo desde git será mas sencillo de actualizar.
Para descargar el código
su - odoo cd git clone https://github.com/Odoo/odoo.git --depth 1 --branch 11.0 --single-branch odoo exit
Con esto descargaremos la versión 11.0 (–branch 11.0) de Odoo en nuestro directorio home, con la opción –depth 1 descargaremos únicamente el último commit en lugar de descargar todo el histórico del código.
CONFIGURACIÓN DE ODOO
Con esto ya tenemos todo lo necesario para lanzar odoo de forma manual, pasando las opciones como parametros, para no tener que indicarlos en cada ejecución vamos a crear un fichero de configuración llamado odoo-server.conf en el directorio home de odoo con este contenido:
[options] ; This is the password that allows database operations: ; admin_passwd = admin db_host = 127.0.0.1 db_port = 5432 db_user = odoo db_password = odoo ;addons_path = /usr/lib/python3/dist-packages/odoo/addons
Con este fichero podrémos lanzar odoo con:
su odoo - /home/odoo/odoo/odoo-bin -c /home/odoo/odoo-server.conf
Una vez lanzado odoo, desde el administrador de base de datos se puede configurar la contraseña de administrador (admin_passwd). Al configurarlo desde el cliente web, se encriptará la contraseña y se actualizará el fichero de configuración con todas sus opciones por defecto.
LANZAR ODOO AL INICIO
En esta versión de Odoo vamos a utilizar systemctl en lugar de initd, para esto tendrémos que crear el fichero que lanzará el servicio:
sudo nano /etc/systemd/system/odoo.service
con el siguiente contenido:
[Unit] Description=Odoo Open Source ERP and CRM After=network.target [Service] Type=simple User=odoo Group=odoo ExecStart=/home/odoo/odoo/odoo-bin --config /home/odoo/odoo.conf KillMode=mixed [Install] WantedBy=multi-user.target
sudo systemctl enable odoo.servce
sudo systemctl start odoo
sudo systemctl stop odoo
sudo systemctl status odoo
Hola Angel,
Muy bueno el artículo! Muchas gracias por el aporte creo que será de gran ayuda 🙂
Lo he estado siguiendo y me ha funcionado de maravilla hasta que he tratado de lanzar odoo, no he conseguido lanzarlo y el sistema me ha devuelto unos errores del archivo __init__.py, concretamente me ha devuelto lo siguiente:
File «/home/odoo/odoo/odoo-bin», line 5, in
import odoo
File «/home/odoo/odoo/odoo/__init__.py», line 84, in
from . import modules
File «/home/odoo/odoo/odoo/modules/__init__.py», line 8, in
from . import db, graph, loading, migration, module, registry
File «/home/odoo/odoo/odoo/modules/graph.py», line 10, in
import odoo.tools as tools
File «/home/odoo/odoo/odoo/tools/__init__.py», line 7, in
from . import pdf
File «/home/odoo/odoo/odoo/tools/pdf.py», line 4, in
from PyPDF2 import PdfFileWriter, PdfFileReader
ModuleNotFoundError: No module named ‘PyPDF2’
parece que me falten algunas dependencias; en la instalación de estas he copiado tu parte de código, sin embargo no se han instalado todas, en principio pensé que no serían necesarias (por lo que comentas en esa parte del artículo) pero parece que sí lo son. Adjunto también la lista de dependencias que no ha instalado porque no las ha encontrado:
Package node-less is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
Package tk is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
E: Unable to locate package python3-pip
E: Package ‘tk’ has no installation candidate
E: Unable to locate package tcl
E: Unable to locate package python3-passlib
E: Unable to locate package python3-werkzeug
E: Unable to locate package python3-decorator
E: Unable to locate package python3-html2text
E: Unable to locate package python3-suds
E: Unable to locate package python3-pypdf2
E: Unable to locate package wkhtmltopdf
E: Unable to locate package node-clean-css
E: Package ‘node-less’ has no installation candidate
¿Crees que los errores en la ejecución se pueden deber a que no he instalado estas dependencias?
¿Crees que algunas de estas es necesaria?
Para aclarar, estoy usando ubuntu 18.4 desde un usb.
Muchas gracias de nuevo, aunque no he podido terminar la instalación tu artículo ya me ha ayudado 🙂
Isra
no funcionan con estas instrucciones.
ademas en ningun momento instalas el archivo requeriment.txt
falta informacion para una persona novata que no sabemos como hacerlo.
Gracias por el comentario, en principio la instalación de requirement.txt no es necesario porque la mayoría de librerías se han instalado con apt-get.
Buenas , gracias por el aporte, pero como dicen los comentarios anteriores, no funciona , porque no se cumplen todos los paquetes, imagino sera algun problema de ubuntu,
[code]
esteban@odoo:~$ sudo apt-get install python3 python3-pip fontconfig libxml2 libxml2-dev libxslt1.1 libxslt1-dev zlib1g liblcms2-2 libtiff5 tk tcl libpq5 libldap-2.4-2 libsasl2-2 libx11-6 libxext6 libxrender1 git libsasl2-dev libldap2-dev python3-passlib python3-babel python3-werkzeug python3-lxml python3-decorator python3-dateutil python3-psycopg2 python3-pil python3-psutil python3-jinja2 python3-reportlab python3-html2text python3-docutils python3-suds python3-pypdf2 wkhtmltopdf node-clean-css node-less
Leyendo lista de paquetes… Hecho
Creando árbol de dependencias
Leyendo la información de estado… Hecho
El paquete node-less no está disponible, pero algún otro paquete hace referencia
a él. Esto puede significar que el paquete falta, está obsoleto o sólo se
encuentra disponible desde alguna otra fuente
El paquete tk no está disponible, pero algún otro paquete hace referencia
a él. Esto puede significar que el paquete falta, está obsoleto o sólo se
encuentra disponible desde alguna otra fuente
E: No se ha podido localizar el paquete python3-pip
E: El paquete «tk» no tiene un candidato para la instalación
E: No se ha podido localizar el paquete tcl
E: No se ha podido localizar el paquete python3-passlib
E: No se ha podido localizar el paquete python3-werkzeug
E: No se ha podido localizar el paquete python3-decorator
E: No se ha podido localizar el paquete python3-html2text
E: No se ha podido localizar el paquete python3-suds
E: No se ha podido localizar el paquete python3-pypdf2
E: No se ha podido localizar el paquete wkhtmltopdf
E: No se ha podido localizar el paquete node-clean-css
E: El paquete «node-less» no tiene un candidato para la instalación
[/code]
¿Que versión de Ubuntu estás utilizando?
Ante todo gracias por el tiempo dedicado, seria bueno quizá que compartas su sources.list . saludos.
He actualizado el manual, sólo tienes que ejecutar:
pip3 install requests
La mayoría de las veces los errores del tipo «No module named XXX …» se solucionan haciendo «pip3 install XXX» o «apt-get install python-XXX».
Amigo, le falta un «i» en el siguiente:
sudo systemctl enable odoo.servce
Gracias por el reporte,
¿nos podrías indicar como hacer la instalación de la localización española?
Hola, Ángel.
Gracias a esta guía he conseguido instalar Odoo.
Mi pregunta es: ¿cómo y cuándo se instala la localización española de la contabilidad? Aunque me dice que está instalada, no veo asientos contables, ni formatos 303…
Gracias.
Buenas Angel, al ejecutar su odoo – me da el siguiente error:
bash: no se puede establecer el grupo de proceso de termina (-1): Funcion ioctl no apropiada para el dispositivo
bash: no hay control de trabajos en este interprete de ordenes