Hola amigos muchas veces queremos tener varias versiones de Odoo en nuestro Servidor, ya sea porque deseamos hacer pruebas o porque queremos poner en producción varias versiones de Odoo en un mismo servidor evitando así que los paquetes de python necesarios para cada versión de Odoo entren en conflicto.
Hay varias formas de poder realizar esto, aquí una de ellas y es la que uso.
Para nuestro caso instalaremos la versión 7,8,9 y 10 de Odoo
Vamos a partir de que ya tenemos Instalado Ubuntu 16.
PARTE 1: PREPARANDO LA PLATAFORMA:
1. Instalando Python VirtualEnv
Ingresamos a la terminal de Ubuntu e instalamos el paquete de Python
sudo apt-get install python-virtualenv
2. Instalamos otros paquetes de python necesarios
sudo apt-get install libxml2-dev libsasl2-dev libldap2-dev libxslt1-dev python-dev
si queremos instalar odoo con dato de demo o prueba, se requiere instalar lo siguiente:
sudo apt-get install libjpg8-dev sudo pip install --no-cache-dir -I pillow
3. Instalando Postgresql
sudo apt-get install postgresql postgresql-server-dev-9.5
PARTE 2: INSTALANDO LAS VERSIONES DE ODOO
Empecemos con Odoo version 7
Paso 1. Creamos el usuario odoo7 para instalar la version 7 de Odoo.
sudo adduser --system --home=/opt/odoo7 --group odoo7
El comando anterior crea el directorio /opt/odoo7 , donde odoo7 es el directorio personal del usuario odoo7 creado.
Paso 2: Configurando postgresql
Para la instalación de Odoo versión 7 usaremos Postgresql sobre puerto por 5433, creamos el usuario odoo7 en PostgreSql y le asignamos un password, este usuario y clave debemos tenerlo presente ya que lo usaremos para la configuración de OdooERP con Postgresql en los pasos posteriores.
Creando una nueva instancia de Postgresql sobre el puerto 5433:
sudo /etc/init.d/postgresql restart sudo pg_createcluster -p 5433 9.5 odoo7
pg_createcluster: Comando para crear una nueva instancia de postgresql
5433: Nuevo puerto en la que correrá la nueva instancia de postgresql
9.5: Versión de Postgresql
odoo7: Nombre de la nueva instancia de Postgresql
Listando las instancias de Postgresql
pg_lsclusters
Verán los siguiente:
9.5 main 5432 online postgres /var/lib/postgresql/9.5/main /var/log/postgresql/postgresql-9.5-main.log 9.5 odoo7 5433 online postgres /var/lib/postgresql/9.5/odoo7 /var/log/postgresql/postgresql-9.5-odoo7.log
En nuestra consola o terminal iniciamos sesión en Postgresql:
sudo su - postgres
Creando el usuario de postgresql odoo7 sobre la instancia nueva que acabamos de crear, agregamos al final (-p 5433), que es el puerto de la nueva instancia de Postgresql que usaremos.
No olvidarse de la clave que coloquen, ya que lo usaremos para la conexión de Odoo con Postgresql.
createuser --createdb --username postgres --no-createrole --no-superuser --pwprompt odoo7 -p 5433
Terminamos la sesión del usuario postgres en la terminal
exit
Paso 3. Iniciamos sesión en la terminal con usuario odoo7 creado en Paso 1.
sudo su - odoo7 -s /bin/bash
Escribiendo el comando pwd en la terminal deberiamos estar ubicados en la ruta : /opt/odoo7
Paso4. Creamos el directorio general del proyecto con Python ViertualEnv, lo llamaremos odoolibs
virtualenv odoolibs
Se crea el directorio odoolibs/ con la siguiente estructura.
bin/
lib/
local/
pip-selfcheck.json
share/
bin: Es el directorio donde se encuentran los ejecutables necesarios para interactuar con el virtualenv.
include: Se encuentran algunos archivos de cabecera de C (cuya extensión es *.h) necesarios para compilar algunas librerías de Python.
lib: se encuentra una copia de Python así como un directorio llamado site-packages en el cual se aloja el código fuente de los paquetes Python instalados en el virtualenv.
Paso 5. Activar un entorno virtual en Python con virtualenv
En el Paso 3 creamos el entorno virtual odoolibs vamos activarlo.
source odoolibs/bin/activate
Veremos que ya estamos dentro del entorno virtual:
(odoolibs) odoo7@huber-VirtualBox:~$
y podremos instalar todos los paquetes de Python que deseamos y esto no afectará a los paquetes del sistema.
Paso 6: Instalar paquetes en un Python virtualenv
Después de activarlo, lo único que resta es instalar los paquetes que sean necesarios usando el ejecutable pip que viene por defecto en cada virtualenv creado.
Instalando las dependencias de Odoo Version 7:
pip install python-dateutil docutils feedparser gdata jinja2 lxml python-openid mako mock psycopg2 pydot pip install reportlab simplejson psutil pytz unittest2 vatnumber babel vobject pywebdav werkzeug xlwt pyyaml pip install http://download.gna.org/pychart/PyChart-1.39.tar.gz
Paso 7: Descargamos el paquete de la version 7 de Odoo:
wget https://github.com/odoo/odoo/archive/7.0.zip
descomprimimos odoo:
unzip 7.0.zip
Renombramos el directorio odoo-7.0 (contiene los archivos de odoo) a server:
mv odoo-7.0/ server
Cambiamos los permisos de la carpeta server:
chown -R odoo7: server
Paso 8. Probando la instalación del Servidor Odoo:
Ejecutamos lo siguiente en nuestra consola o terminal:
/opt/odoo7/server/openerp-server --addons-path=/opt/odoo7/server/addons
Veremos algo similar a:
2016-12-21 11:00:11,132 19651 INFO ? openerp: OpenERP version 7.0 2016-12-21 11:00:11,132 19651 INFO ? openerp: addons paths: /opt/odoo7/server/addons 2016-12-21 11:00:11,133 19651 INFO ? openerp: database hostname: localhost 2016-12-21 11:00:11,133 19651 INFO ? openerp: database port: 5432 2016-12-21 11:00:11,133 19651 INFO ? openerp: database user: odoo7 2016-12-21 11:00:11,575 19651 INFO ? openerp.addons.google_docs.google_docs: GData lib version `%s GData-Python/2.0.18` detected 2016-12-21 11:00:11,912 19651 INFO ? openerp.service.wsgi_server: HTTP service (werkzeug) running on 0.0.0.0:8069 2016-12-21 11:00:11,912 19651 INFO ? openerp: OpenERP server is running, waiting for connections...
Lo que nos indica que vamos por buen camino.
Presionamos Ctrl + C para detener la ejecución de Odoo
Paso 9: Creando un directorio para almacenar el archivo de logs
Primero debemos salir del entorno virtual en la que nos encontramos, escribimos en la consola esto.
deactivate
Luego, como hemos iniciado sesión en la terminal con el usuario odoo7 también cerramos la sesión, escribiendo exit
exit
Ahora si creamos (mkdir) el directorio que almacenará los logs de Odoo y con chown damos los permisos respectivos:
sudo mkdir /var/log/odoo7/ sudo chown odoo7:root /var/log/odoo7
Paso 10: Configurando Odoo Server
Creando el archivo de configuración de Odoo Server y le damos los permisos respectivos:
sudo mkdir /etc/odoo7/ sudo cp /opt/odoo7/server/debian/openerp-server.conf /etc/odoo7/openerp-server.conf sudo chown odoo7: /etc/odoo7/openerp-server.conf sudo chmod 640 /etc/odoo7/openerp-server.conf
Editamos el archivo openerp-server.conf :
sudo nano /etc/odoo7/openerp-server.conf
Modificamos y/o agregamos lo siguiente a:
[options] ; This is the password that allows database operations: ; admin_passwd = admin db_host = False ; Nuevo puerto para conectarse a la nueva instancia de posrgresql db_port = 5433 db_user = odoo7 db_password = CLAVE DEL USUARIO ODOO DEL DB CREADO EN EL PASO 2 ;Ruta en donde se encuenta nuestro addons addons_path = /opt/odoo7/server/addons ;Nuevo archivo para ver el log de la nueva instancia de Odoo logfile = /var/log/odoo7/openerp-server.log ;Aqui le decimos a Odoo que use la nueva instancia de postgresql. pg_path = /usr/lib/postgresql/9.5/bin
Presionamos Ctrl + O para guardar y enter , luego Ctrl + X para salir.
Paso 11. Script de inicio automático de Odoo-Server en Ubuntu 16
Este es uno de los puntos importantes a configurar, el arranque de odoo server.
Creando el script de inicio y dando los permisos respectivos:
sudo cp /opt/odoo7/server/debian/init /etc/init.d/odoo7 sudo chmod 755 /etc/init.d/odoo7 sudo chown root: /etc/init.d/odoo7
Editamos el archivo:
sudo nano /etc/init.d/odoo7
y modificamos los siguientes valores de DAEMON, ENTORNO, CONFIG, LOGFILE y USER a :
DAEMON=/opt/odoo7/server/openerp-server ENTORNO=/opt/odoo7/odoolibs/bin/python CONFIG=/etc/odoo7/openerp-server.conf LOGFILE=/var/log/odoo7/openerp-server.log USER=odoo7 test -x ${DAEMON} || exit 0 set -e do_start () { echo -n "Starting ${DESC}: " start-stop-daemon --start --quiet --pidfile /var/run/${NAME}.pid --chuid ${USER} --background --make-pidfile --exec $ENTORNO ${D$ echo "${NAME}." }
No olvidarse de agregar la varible $ENTORNO en la linea 14
Guardamos Ctrl + O y enter, para salir Ctrl + X.
Haciendo que Odoo Server se inicie automáticamente cuando reiniciemos nuestro servidor:
sudo update-rc.d odoo7 defaults
Iniciamos el servicio de Odoo:
sudo /etc/init.d/odoo7 start
Ingresando via web a Odoo version 7:
http://IP_or_dominio.com:8069
Viendo el log de Odoo:
tail -f /var/log/odoo7/openerp-server.log
Es todo amigos espero que les sea de ayuda.
Usar la misma lógica para instalar las otras versiones de Odoo, espero pronto publicarlos.
Gracias.
5 comentarios
Ceci · 01/02/2017 a las 7:02 pm
Se puede instalar Odoo 10 en Ubuntu 14?
Javier Salazar Carlos · 01/02/2017 a las 10:27 pm
Si es posible instalar Odoo 10 en Ubuntu 14, el procedimiento es similar.
Edgar · 11/05/2017 a las 9:31 am
Hola he estado instalando odoo 8 según este tutorial y tras haber ejecutado /opt/odoo8/server/openerp-server –addons-path=/opt/odoo8/server/addons
Me devuelve este error de salida:
Traceback (most recent call last):
File «/opt/odoo8/server/openerp-server», line 2, in
import openerp
File «/opt/odoo8/server/openerp/__init__.py», line 76, in
import modules
File «/opt/odoo8/server/openerp/modules/__init__.py», line 27, in
from . import db, graph, loading, migration, module, registry
File «/opt/odoo8/server/openerp/modules/graph.py», line 32, in
import openerp.osv as osv
File «/opt/odoo8/server/openerp/osv/__init__.py», line 22, in
import osv
File «/opt/odoo8/server/openerp/osv/osv.py», line 23, in
from .orm import Model, TransientModel, AbstractModel
File «/opt/odoo8/server/openerp/osv/orm.py», line 5, in
from ..models import (
File «/opt/odoo8/server/openerp/models.py», line 61, in
from . import api
File «/opt/odoo8/server/openerp/api.py», line 71, in
from openerp.tools import frozendict, classproperty
File «/opt/odoo8/server/openerp/tools/__init__.py», line 26, in
from misc import *
File «/opt/odoo8/server/openerp/tools/misc.py», line 56, in
from cache import *
File «/opt/odoo8/server/openerp/tools/cache.py», line 25, in
from decorator import decorator
Podrían echarme una mano
Javier Salazar Carlos · 11/05/2017 a las 5:10 pm
Al parecer hay un problema de dependencia, intenta instalar el paquete:
$ sudo pip install decorator
Jesus · 29/11/2017 a las 11:36 am
Buenas, y como se instalan las otras versiones?
Saludos y gracias