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.

Categorías: Odoo ERP v7

Javier Salazar Carlos

Soy Ingeniero de Ingeniería de Sistemas, egresado de la Universidad Nacional del Callao, especialista en Tecnologías de la Información y de las Comunicaciones (TICs).

5 comentarios

Ceci · 01/02/2017 a las 7:02 pm

Se puede instalar Odoo 10 en Ubuntu 14?

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

Responder a Ceci Cancelar respuesta

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

*

code