Odoo 8 en Ubuntu 16.04

Ubuntu 16.04 es la última versión LTS desde la 14.04. Aunque la versión 14.04 sigues teniendo soporte para próximas implantaciones será recomendable utilizar esta nueva versión de Ubuntu. En este post explicaré como instalar Odoo 8 en Ubuntu 16.04, por el momento no voy a mostrar como instalar Odoo 9 porque, aunque sea ya una versión estable, la mayoría de módulos de la localización española no han sido migrados.

Instalación de dependencias

Lo primero que haremos será instalar las depencias necesarias para instalar Odoo

[cc lang=”text”]
sudo apt-get -yq install adduser ghostscript postgresql-client-9.5 python python-pip python-imaging python-pychart python-libxslt1 xfonts-base xfonts-75dpi libxrender1 libxext6 fontconfig python-zsi python-lasso libzmq3-dev libpq-dev python-dev libffi-dev libxml2-dev libxslt1-dev libldap2-dev libsasl2-dev libssl-dev libjpeg8-dev
[/cc]

Instalación de wkhtmltopdf

El paquete wkhtmltopdf es el encargado de generar los informes en pdf a partir del código html, esta librería introduce cambios en las distintas versiones, y actualmente en Odoo es importante que se instale la versión 12.1, ya que con otras versiones puedes encontrar problemas a la hora de renderizar css o cargar subinformes

[cc lang=”text”]
wget http://download.gna.org/wkhtmltopdf/0.12/0.12.1/wkhtmltox-0.12.1_linux-trusty-amd64.deb
sudo dpkg -i wkhtmltox-0.12.1_linux-trusty-amd64.deb
[/cc]

Instalación de Postgres

El motor de la base de datos de Odoo es postgres, esto no ha cambiado, tendremos que instalar el servidor y crear un usuario para conectarnos.

Instalar el servidor de postgresql

[cc lang=”text”]
sudo apt-get install postgresql
[/cc]

Crear un usuario de base de datos

[cc lang=”text”]
sudo su postgres
createuser odoo
[/cc]

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.

[cc lang=”text”]
sudo adduser odoo
[/cc]

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 instalar git

[cc lang=”text”]
sudo apt-get install git
[/cc]

Para descargar el código

[cc lang=”text”]
su – odoo
cd
git clone https://github.com/Odoo/odoo.git –depth 1 –branch 8.0 –single-branch odoo
[/cc]

Con esto descargaremos la versión 8.0 (–branch 8.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.

Instalar requisitos python

Dentro del código de Odoo hay un fichero con todas las dependencias de librerías python necesarias para isntalar odoo. Mediante el instalador de librerías python-pip instalaremos estos requisitos.

[cc lang=”text”]
sudo pip install -r /home/odoo/odoo/sources/odoo/requirements.txt
[/cc]

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:

[cc lang=”text”]
[options]
admin_passwd = admin

xmlrpc = True
xmlrpc_port = 8069

db_host = 127.0.0.1
db_port = 5432
db_user = odoo
db_password = odoo

addons_path = /home/odoo/odoo/sources/odoo/addons,/home/odoo/odoo/sources/odoo/openerp/addons
[/cc]

Con este fichero podrémos lanzar odoo con:

[cc lang=”text”]
/home/odoo/odoo/openerp-server -c /home/odoo/odoo-server.conf
[/cc]

Lanzar Odoo al inicio

En el código de Odoo hay un script de inicio preparado en la carpeta debian, este script presupone una instalación en unos directorios distintos a los que estamos utilizando, después de ajustar este fichero quedará de la siguiente forma:

[cc lang=”text”]

#!/bin/bash
### BEGIN INIT INFO
# Provides: odoo.py
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start odoo daemon at boot time
# Description: Enable service provided by daemon.
# X-Interactive: true
### END INIT INFO
## more info: http://wiki.debian.org/LSBInitScripts

. /lib/lsb/init-functions

PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin
DAEMON=/home/odoo/odoo/odoo.py
NAME=odoo
DESC=odoo
CONFIG=/home/odoo/odoo.conf
LOGFILE=/home/odoo/odoo-server.log
PIDFILE=/home/odoo/${NAME}.pid
USER=odoo
export LOGNAME=$USER

test -x $DAEMON || exit 0
set -e

function _start() {
start-stop-daemon –start –quiet –pidfile $PIDFILE –chuid $USER:$USER –background –make-pidfile –exec $DAEMON — –config $CONFIG –logfile $LOGFILE
}

function _stop() {
start-stop-daemon –stop –quiet –pidfile $PIDFILE –oknodo –retry 3
rm -f $PIDFILE
}

function _status() {
start-stop-daemon –status –quiet –pidfile $PIDFILE
return $?
}
case “$1” in
start)
echo -n “Starting $DESC: ”
_start
echo “ok”
;;
stop)
echo -n “Stopping $DESC: ”
_stop
echo “ok”
;;
restart|force-reload)
echo -n “Restarting $DESC: ”
_stop
sleep 1
_start
echo “ok”
;;
status)
echo -n “Status of $DESC: ”
_status && echo “running” || echo “stopped”
;;
*)
N=/etc/init.d/$NAME
echo “Usage: $N {start|stop|restart|force-reload|status}” >&2
exit 1
;;
esac

exit 0

[/cc]

Este fichero se ha de copiar en /etc/init.d/odoo, y para que se cargue en el inicio ejecutar desde consola lo siguiente:

[cc lang=”text”]

sudo su –

chmod +x /etc/init.d/odoo

update-rc.d odoo defaults

[/cc]

9 comentarios sobre “Odoo 8 en Ubuntu 16.04

  1. Roberto

    Hola, en primer lugar agradecerte el aporte.

    Estoy empezando una aventura empresarial como guía turístico, y me gustaría contar con una herramienta que me permita centralizar tanto lo fiscal, contable, comercial, procesos y proyectos (en principio)

    He intentado seguir el tuto paso a paso, pero no puedo por la infraestructura del sistema que tengo (i386) (es un portátil antiguo en el que he conseguido instalar UbuntuMate LTS 16.04)

    No sé si puedes indicarme cómo instalar Odoo en máquinas antiguas. me interesa mucho aprender a configurar y utilizar este ERP+CRM, pero una barrera importante es que no lo tengo instalado.

    Gracias de antemano.

  2. Marco Garcia

    Despues de seguir tus pasos me da este error, cual es la solución?

    OperationalError: FATAL: password authentication failed for user “odoo”
    FATAL: password authentication failed for user “odoo”

  3. Jorge

    la version de ubuntu es de 64 o 32 ? los mismos pasos funcionan en ubuntu server?

  4. juanma

    A 10-10-2016 el fichero con los requisitos python está en /home/odoo/odoo/doc/requirements.txt poniendo el path correcto funciona bien.

  5. Angel Moya Autor del artículo

    He utilizado la versión de ubuntu server de 64 bits

  6. Albert

    Hola,

    tras ejecutar, me sale el siguente error:

    oot@ubuntu:/var/lib/postgresql# ./odoo/openerp-server -c /home/odoo/odoo-server.conf
    Traceback (most recent call last):
    File “./odoo/openerp-server”, line 2, in
    import openerp
    File “/var/lib/postgresql/odoo/openerp/__init__.py”, line 76, in
    import modules
    File “/var/lib/postgresql/odoo/openerp/modules/__init__.py”, line 27, in
    from . import db, graph, loading, migration, module, registry
    File “/var/lib/postgresql/odoo/openerp/modules/graph.py”, line 32, in
    import openerp.osv as osv
    File “/var/lib/postgresql/odoo/openerp/osv/__init__.py”, line 22, in
    import osv
    File “/var/lib/postgresql/odoo/openerp/osv/osv.py”, line 23, in
    from .orm import Model, TransientModel, AbstractModel
    File “/var/lib/postgresql/odoo/openerp/osv/orm.py”, line 1, in
    import simplejson
    ImportError: No module named simplejson

  7. Angel Moya Autor del artículo

    Buenas, si has ejecutado correctamente el paso de “pip install -r requeriments.txt” debería estar instalada esa librería.

    De todas formas, en Odoo o cualquier aplicación en python, si tienes un error del tipo “ImportError: No module named …” se soluciona instalando esa librería. En este caso:

    sudo pip install simplejson

  8. Sergio Muñoz

    Buenos dias,

    Si creaste un usuario especificamente para el manejo del servidor odoo, es necesario descargar los modulos de la localización con dicho usuario?
    Gracias por el aporte,
    Sergio

  9. Angel Moya Autor del artículo

    Lo mejor es descargar los módulos con el mismo usuario que vas a lanzar el servidor, para evitar problemas de permisos.

Deja un comentario

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