Instalar Odoo 11 en Ubuntu 18.04

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
Activamos el servicio:
sudo systemctl enable odoo.servce
Por último podemos arrancar el servicio con:
sudo systemctl start odoo
También podemos parar el servicio con:
sudo systemctl stop odoo
Y consultar el estado del servicio con:
sudo systemctl status odoo

 

7 comentarios sobre “Instalar Odoo 11 en Ubuntu 18.04

  1. Isra

    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

  2. limbertx

    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.

  3. Angel Moya Autor del artículo

    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.

  4. Esteban Zaffaroni

    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]

  5. Angel Moya Autor del artículo

    ¿Que versión de Ubuntu estás utilizando?

  6. julio

    Ante todo gracias por el tiempo dedicado, seria bueno quizá que compartas su sources.list . saludos.

  7. Angel Moya Autor del artículo

    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”.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.