Muchos implantadores se han quedado en la versión 8, ya que la versión 9 no ha tenido muchas mejoras respecto a la versión 8, y se han esperado a que salga la versión 10. En la Odoo Experience 2016 se ha presentado la versión 10 de Odoo. Y ya se están realizando muchas migraciones de módulos a la versión 10 en el github de OCA. En este post explicaré como instalar Odoo 10 en Ubuntu 16.04.
Instalación de dependencias
Lo primero que haremos será instalar las depencias necesarias para instalar Odoo
sudo apt-get -yq install adduser postgresql-client python-dateutil python-docutils python-feedparser python-jinja2 python-ldap python-libxslt1 python-lxml python-mako python-mock python-openid python-psycopg2 python-psutil python-pybabel python-pychart python-pydot python-pyparsing python-reportlab python-simplejson python-tz python-unittest2 python-vatnumber python-vobject python-webdav python-werkzeug python-xlwt python-yaml python-zsi poppler-utils python-pip python-pypdf python-passlib python-decorator gcc python-dev libxml2-dev libxslt-dev libsasl2-dev libldap2-dev libssl-dev libpq-dev libjpeg-dev libjpeg8-dev python-setuptools python-markupsafe python-reportlab-accel python-zsi python-yaml python-argparse python-openssl python-egenix-mxdatetime python-usb python-serial lptools make python-pydot python-psutil python-paramiko poppler-utils python-pdftools antiword python-requests python-xlsxwriter python-suds python-software-properties
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
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
Instalación de npm less
Para que funcione correctamente el servidor web es necesario instalar npm y su paquete less.
sudo apt-get -yq install npm sudo ln -s /usr/bin/nodejs /usr/bin/node sudo npm install -g less less-plugin-clean-css
Instalación de Pillow
En la primera prueba de instalación tuve problemas a la hora de instalar datos demo con el procesamiento de imagenes, esto se puede solucionar con la instalación del paquete python de Pillow
RUN pip install --no-cache-dir -I pillow
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
sudo apt-get install postgresql
Crear un usuario de base de datos
sudo su postgres createuser odoo
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
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
sudo apt-get install git
Para descargar el código
su - odoo cd git clone https://github.com/Odoo/odoo.git --depth 1 --branch 10.0 --single-branch odoo exit
Con esto descargaremos la versión 10.0 (–branch 10.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.
sudo pip install -r /home/odoo/odoo/requirements.txt
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] 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
Con este fichero podrémos lanzar odoo con:
su odoo - /home/odoo/odoo/odoo-bin -c /home/odoo/odoo-server.conf
En esta versión se ha renombrado el ejecutable, de openerp-server a odoo-bin.
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:
#!/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-bin NAME=odoo DESC=odoo CONFIG=/home/odoo/odoo-server.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
Este fichero se ha de copiar en /etc/init.d/odoo, y para que se cargue en el inicio ejecutar desde consola lo siguiente:
sudo su - chmod +x /etc/init.d/odoo update-rc.d odoo defaults
Esta instrucción «sudo pip install -r /home/odoo/odoo/sources/odoo/requirements.txt» da error «odoo no está en el archivo sudoers. Se informará de este incidente»
Y además la carpeta /home/odoo/odoo/sources no existe. El requierements.txt está en /home/odoo/odoo
Gracias por los comentarios, en cuanto pueda corrijo el post.
Para ejecutar el comando sudo pip install hazlo con tu usuario de Odoo, o directamente haz pip install con el usuario root.
El archivo requeriments.txt estará dentro del directorio de Odoo, en principio en /home/odoo/odoo
Gracias por tu aporte muy valioso
Buenas, lo primero agradecerte el paso a paso. Yo he seguido todas tus instrucciones, la unica diferencia a sido llamar al archivo /etc/init.d/odoo le he llamado odoo-server, si saco un estado del servicio odoo-server me devuelve lo siguiente:
odoo@odooserver:~$ service odoo status
● odoo-server.service – LSB: Start odoo daemon at boot time
Loaded: loaded (/etc/init.d/odoo-server; bad; vendor preset: enabled)
Active: active (exited) since dom 2016-11-06 22:31:52 CET; 1min 48s ago
Docs: man:systemd-sysv-generator(8)
Process: 11089 ExecStop=/etc/init.d/odoo-server stop (code=exited, status=0/SUCCESS)
Process: 11100 ExecStart=/etc/init.d/odoo-server start (code=exited, status=0/SUCCESS)
Hola!
La localización española no esta disponible en Odoo 10 verdad? Saludos y gracias
Buenas, hay algunos módulos, pero no está migrado por completo, puedes verla en https://github.com/OCA/l10n-spain
Si lo has llamado odoo-server deberías ejecutar «service odoo-server status», si te devuelve información poniendo odoo es porque tienes que tener otra instalación con otro servicio llamado odoo.
Buenas Ángel. Enhorabuena por el post (y por su posicionamiento). Dos pequeños apuntes:
1.- El paquete «postgresql-contrib» es muy interesante de instalar para, entre otras cosas, añadir la extensión «UNACCENT» a las Bases de Datos.
2.- En vez de generar el fichero de configuración de Odoo a mano, siempre preferí la opción de que me lo generase el propio binario de Odoo con la instrucción «./odoo-bin -s -c odoo-server.conf».
Un saludo,
Hola Alberto, muchas gracias por el apunte.
Lo de unnaccent es cierto, muy útil y necesario en una instalación completa. Estos tutoriales los hago con lo mínimo para probar que funcione, pero unnaccent en producción es indispensable. Hace poco me encontré una instalación en la que habían dicho a los usuarios que no era posible realizar búsquedas sin tener en cuenta los acentos, y les habían dicho que lo correcto era poner todos los nombres sin acentos. Imagínate cómo tenían el sistema.
Sobre el fichero de configuración ya va en gustos, para estas pruebas me gusta tenerlo con lo mínimo, y para producción ya tengo uno preparado para una configuración a medida según el servidor.
Bueno Alberto, me alegra verte por aquí, el otro día recibí un presupuesto de tu empresa para la oficina que estoy montando en Murcia y al ver el nombre de la empresa me acordé. Un saludo y gracias por el comentario
Mil Gracias Angel y a ti también Alberto
El aporte es muy bueno.
Me gustaría pedirte o incluso a ambos que ampliarais el tema de El paquete postgresql-contrib y lo de Añadir la extensión “UNACCENT” a las Bases de Datos
Y una cosa más veo que dices que para explotación creas ficheros de configuración especificos, me podrías decir que diferencia exite entre el que tu creas manualmente y el que, como dice Alberto, se crea de forma automática?.
Mil gracias por el aporte
Un saludo
En el paso Instalar el servidor de postgresql
sudo apt-get install postgresql
Crear un usuario de base de datos
sudo su postgres
createuser odoo
el sistema me pide la contraseña del usuario postgres, entiendo que este usuario está bloqueado por defecto pero ni idea de como continuar
Que estoy haciendo mal?
Buenas Vicente,
El paguete postgresql-contrib se instala con apt-get y la extensión Unaccent se isntala desde psl, hay muchos tutoriales en google.
Sobre el fichero de configuración, hay una opción cuando lanzas el servidor (no la recuerdo, creo que es -c) que te genera un fichero de configuración con unos valores por defecto y/o los valores que has puesto como parámetros. Yo no utilizo esta opción porque te genera un fichero de configuración con todos los parámetros disponibles, y muchos de ellos no son necesarios en la mayoría de casos. Para aprender sería una buena opción generarlo así y luego estudiar que hace cada campo.
Si has hecho «sudo su postgres» lo que estas haciendo es logearte como usuario postgres, al hacerlo con sudo lo haces como usuario root y no te pide contraseña.
Cuando estas logeado como usuario postgres, al hacer createuser odoo, la contraseña que te pide es la que le vas a asignar al usuario odoo.
Pingback: 10 módulos para Odoo 10 | Alberto Luengo Cabanillas
Hola, una consulta, te doy un contexto de la situación, en la empresa donde laboro usamos openerp==6.0.3 (NO usamos contabilidad, existe un software contable que le enviamos cierta información ), pensamos migrar a odoo10 ( comenzar con la parte contable). ¿que debo tener en cuenta, para que openerp==6.0.3 se comunique y alimente al modulo contable en odoo10?.. se que puede ser muy obvio, algunas cosas, pero solo consultaba si tenias alguna experiencia sobre este tema.
gracias
Buenas, estoy empezando en esto de odoo y no consigo crear el fichero odoo-server.config