logo

OpenERP v5.0.15 – Instalación para Ubuntu 10.10 – 10.04LTS

cliente web), módulos, localización española y poweremail, desde los fuentes obtenidos con bazar.

También sobre la instalación y configuración de postgresql 8.4 para funcionar con OpenERP y la actualización de las bases de datos que tuviésemos anteriormente.

Esta realizado sobre Ubuntu 10.10 aunque no creo que tengamos problemas al realizarlo sobre la versión 10.04 LTS

Los módulos serán enlazados, en vez de copiados para facilitar la tarea de actualización de los mismos.

 

 

 

 

Índice de contenido

Instalación de openERP en Ubuntu 10.10 

1Descargar los fuentes 

2Instalar dependencias 

3Instalación y configuración de Postgresql8.4 

4Instalación parte servidor 

5Instalación cliente web 

6Añadir localización española y nuevos módulos a OpenERP 

7Uso de bases de datos creadas anteriormente 




Instalación de openERP en Ubuntu 10.10


WARNING:

Backup, copia de seguridad, salvar los datos antes de meteros a cambiar cosas. 

No me responsabilizo de tus datos, sślvalos cada x tiempo, es totalmente necesario.

Descargar los fuentes

Repositorios a utilizar:

lp:openobject-server/5.0 El servidor

lp:openobject-addons/5.0 Los addons

lp:openobject-client/5.0 Cliente GTK

lp:openobject-client-web/5.0 Cliente web

lp:openobject-addons/extra-5.0 Extra addons



Los trunk (de la próxima versión, en fase de pruebas y NO estable, no los utilizaremos, pero por si queréis probar):

lp:~openerp/openobject-server/trunk Servidor

lp:~openerp/openobject-client-web/trunk Cliente web

lp:~openerp/openobject-client/trunk Cliente GTK

lp:~openerp/openobject-addons/trunk Addons

lp:~openerp/openobject-addons/trunk-extra-addons Extra addons


La localización española:

lp:openerp-spain


Algunos módulos tienen sus propios repositorios, como ocurre con Poweremail:

lp:poweremail

(Requiere  python-django y python-mako, pero ya los he añadido en las dependencias)


Utilizaremos bazar para la descarga de los fuentes, así que lo instalamos:


$ sudo apt-get update

$ sudo apt-get install bzr


Descargamos los fuentes del servidor (lo guarda en el directorio_actual/openerp-server50):

$ bzr branch lp:openobject-server/5.0 openerp-server50

Cliente web:

$ bzr branch lp:openobject-client-web/5.0 cliente-web50

Addons:

$ bzr branch lp:openobject-addons/5.0 addons50

Extra-addons:

$ bzr branch lp:openobject-addons/extra-5.0 extra-addons50

Los módulos de la localización española:

$ bzr branch lp:openerp-spain openerp-spain

Si utilizas en la misma máquina el cliente GTK, puedes también descargarlo:

$ bzr branch lp:openobject-client/5.0 cliente-gtk50


Instalar dependencias

$ sudo apt-get update

$ sudo apt-get install python-lxml python-psycopg2 python-pydot python-reportlab

python-tz python-matplotlib python-pychart python-hippocanvas python-dev build-essential

python-setuptools python-mako python-django


Las 2 últimas dependencias son para poweremail, también para el módulo label, . . . en fin que las meto de antemano.

Instalación y configuración de Postgresql8.4

Lo instalamos y configuramos con el usuario que tengamos creado en la cuenta de usuario de ubuntu.


(Por defecto instalar la versión 8.4 de postgres)

$ sudo apt-get update

$ sudo apt-get install postgresql


Si ya lo teníamos instalado, sólo crearemos el usuario necesario para OpenErp, pero para ello debemos conocer que password tiene el administrador de postgresql8.4


Realmente los clientes que se conectan al servidor, desde otros equipos, no acceden directamente al gestor de bdd.


Sería

openerp-client

 <–> openerp-server <–> postgresql

openerp-web


Debemos crear el usuario de la base de datos para OpenERP:


Entro como admin de postgres (es postgres) y creo la bdd, esto me

pedirá la clave del sudo, que es la del primer usuario creado en el sistema,

vamos, la creada en la instalación de Ubuntu 10.10


Crearemos acceso a postgresql de un usuario que ya exista en el sistema, por ejemplo, el mismo creado durante la instalación, aunque la contraseña la pondremos distinta.


$ sudo su postgres

$ createuser –createdb –username postgres –no-createrole –pwprompt joseba

Enter password for new role: aqui la password para el usuario ‘joseba’ (p.e. de momento la misma)

Enter it again: repetimos

Shall the new role be a superuser? (y/n) N No lo ponemos superuser

Contraseña: esta es la contraseña del usuario postgres, para poder dar de alta al usuario ‘joseba’


Explicación:

–createdb el usuario ‘joseba’ puede crear bases de datos

–username postgres el superusuario ‘postgres’ crea a ‘joseba’

–no-createrole ‘joseba’ no puede crear usuarios

–pwprompt se te pregunta que contraseña asignar a ‘joseba’


Ahora exit del usuario postgres:


$ exit


Por defecto postgresql8.4 sólo permite conectarse a las bases de datos a aquellos usuarios que tienen cuenta en el sistema (ident), así que modificamos /etc/postgresql/8.4/main/pg_hba.conf la opción que permite conectarse a postgresql8.4 y las bases de datos que contiene a todos los usuarios dados de alta en el sistema postgres además de aquellos que no tienen cuenta del sistema linux. (Pero si tienen cuenta creada en postgresql8.4)

$ sudo nano /etc/postgresql/8.4/main/pg_hba.conf


Y modificar:

lo     local      all     all     ident

Por:

local    all      all     md5


Ahora reiniciamos el servidor:


$ sudo /etc/init.d/postgresql-8.4 restart


Aquí ya puedes saltar al punto siguiente, lo que sigue es para salvar / restaurar bases de datos a través de los clientes de openerp (web o GTK)

Si además quiero poder salvar / restaurar las bases de datos desde los clientes openerp es necesario:

Cómo el sistema de backup de los clientes openerp no admiten la autenticación md5, podemos (aunque rebajaría la seguridad del servidor postgresql bastante) cambiar en el pg_hba.conf la línea


$ sudo nano /etc/postgresql/8.4/main/pg_hba.conf


Cambio:

host all all 127.0.0.1/32 md5


Por:

host all all 127.0.0.1/32 trust


Cómo es inseguro, cambialo sólo para pruebas o cuando lo necesites.

Lo mejor es manejar las bases de datos con pg_dump y pg_restore en el lado del servidor.


Instalación parte servidor


$ cd openerp-server50/

$ sudo ./setup.py install

Esto me instala el servidor de openerp en el directorio:

/usr/local/lib/python2.6/dist-packages/openerp-server/

Y el enlace al ejecutable en:

/usr/local/bin/openerp-server


Una vez instalado el servidor ya lo podemos ejecutar, pero aún no funcionará, debemos:

  • Crear archivo de configuración con los parámetros necesarios para conectar con la base de datos postgresql 8.4 que creamos anteriormente (mejor en el directorio /etc/ )

    Además tendré que indicar al ejecutable donde encontrar el archivo de configuración durante la ejecución (parámetro –config=/etc/openerp-server.conf)

  • Establecer el fichero que permite ejecutar automáticamente el servidor openerp con cada reinicio del ordenador (ejecutable en /etc/init.d y los necesarios en los runlevel)


ARCHIVO DE CONFIGURACIÓN /etc/openerp.conf

Nota: Incluyo en el post el archivo de configuración, para que no tengáis que cortar y pegar, que puede ocasionar errores. Sólo bajarlo, modificarlo, y copiarlo a su ubicación correspondiente.

 Creo /etc/openerp-server.conf con el siguiente contenido:

(debes ajustar db_user, db_password según lo que tengas puesto en el paso de la configuración de postgres)

Tener en cuenta que el usuario que aquí indicas puede realizar las operaciones normales desde los clientes de openerp, pero no el backup o restauración de bases de datos.

Para esto último se requiere acceso directo desde el cliente al servidor postgresql8.4, y permisos para realizarlo.


## Comienzo del archivo de configuración

[options]

#without_demo = False

netport = 8070

secure = False

demo = {}

#syslog = true

cache_timeout = 100000

port = 8069

smtp_password = False

secure_pkey_file = server.pkey

netinterface =

#log_level = 20

admin_passwd = admin

smtp_port = 25

smtp_server = localhost

price_accuracy = 2

import_partial =

soap = False

#pidfile = true

db_maxconn = 64

reportgz = False

xmlrpc = True

#db_port = False

debug_mode = False

netrpc = True

secure_cert_file = server.cert

#interface =

logfile = /var/log/openerp/openerp-server.log

csv_internal_sep = ,

pg_path = None

translate_modules = [‘all’]

stop_after_init = False

root_path = /usr/local/lib/python2.6/dist-packages/openerp-server

smtp_user = False

db_user = joseba

db_password = joseba

db_name = False

db_host = False

assert_exit_level = 30

email_from = False

addons_path = /usr/local/lib/python2.6/dist-packages/openerp-server/addons

## Fín del archivo de configuración


Como he indicado en el archivo de configuración, en /var/log/openerp/openerp-server.log

se guardarán los logs emitidos por el servidor, pero no antes de que tenga creados esos ficheros y directorio, con los permisos adecuados a mi configuración:

$ sudo mkdir /var/log/openerp

$ sudo touch /var/log/openerp/openerp-server.log

Ahora los permisos para que mi usuario ‘joseba’ pueda escribir en esos directorios / ficheros:

$ sudo chown -R joseba /var/log/openerp

Ahora lo puedo probar ejecutando e indicando el archivo de configuración:


$ openerp-server –config=”/etc/openerp-server.conf”

Si la añado al final & arrancará en background

Comentar que al tener configurado un archivo de log, al ejecutarlo en la consola no nos presentará nada de información, que si estará en /var/log/openerp/openerp-server.conf




SCRIPTS DE INICIO / RUNLEVELS EN /etc/init.d

 

Nota: Incluyo en el post el archivo de init.d, para que no tengáis que cortar y pegar, que puede ocasionar errores. Sólo bajarlo, modificarlo, y copiarlo a su ubicación correspondiente. Posiblemente también asignarle los permisos de ejecución, cómo dice el mismo tutorial.

El siguiente paso es hacer que el servidor tenga su script de inicio y se inicie con el ordenador.

Para ello necesito crear el script de inicio asi cómo propagarlo en los runlevel:


Para ello creo un archivo /etc/init.d/openerp-server con el siguiente contenido, pero OJO, tienes que cambiar el campo USER= por un usuario que ya

tenga tu sistema, en mi caso el mio mismo, joseba

También vigilar que DAEMON apunte al path correcto de openerp-server, visto anteriormente con whereis. (usr/local/bin/openerp-server)


Ojo a los errores producidos al cortar / pegarPara evitar errores al copiar / pegar con el tema de los formatos y los editores, mejor utilizar el fichero descargado desde alguna web.


## Comienzo script de init.d

#!/bin/sh


### BEGIN INIT INFO

# Provides: openerp-server

# Required-Start: $syslog

# Required-Stop: $syslog

# Should-Start: $network

# Should-Stop: $network

# Default-Start: 2 3 4 5

# Default-Stop: 0 1 6

# Short-Description: Enterprise Resource Management software

# Description: Open ERP is a complete ERP and CRM software.

### END INIT INFO


PATH=/sbin:/bin:/usr/sbin:/usr/bin

DAEMON=/usr/local/bin/openerp-server

NAME=openerp-server

DESC=openerp-server


USER=joseba


test -x ${DAEMON} || exit 0


set -e


case “${1}” in

start)

echo -n “Starting ${DESC}: “


start-stop-daemon –start –quiet –pidfile /var/run/${NAME}.pid

–chuid ${USER} –background –make-pidfile

–exec ${DAEMON} — –config=/etc/openerp-server.conf


echo “${NAME}.”

;;


stop)

echo -n “Stopping ${DESC}: “


start-stop-daemon –stop –quiet –pidfile /var/run/${NAME}.pid

–oknodo


echo “${NAME}.”

;;


restart|force-reload)

echo -n “Restarting ${DESC}: “


start-stop-daemon –stop –quiet –pidfile /var/run/${NAME}.pid

–oknodo


sleep 1


start-stop-daemon –start –quiet –pidfile /var/run/${NAME}.pid

–chuid ${USER} –background –make-pidfile

–exec ${DAEMON} — –config=/etc/openerp-server.conf


echo “${NAME}.”

;;

restart|force-reload)

echo -n “Restarting ${DESC}: “


start-stop-daemon –stop –quiet –pidfile /var/run/${NAME}.pid

–oknodo


sleep 1


start-stop-daemon –start –quiet –pidfile /var/run/${NAME}.pid

–chuid ${USER} –background –make-pidfile

–exec ${DAEMON} — –config=/etc/openerp-server.conf


echo “${NAME}.”

;;


*)

N=/etc/init.d/${NAME}

echo “Usage: ${NAME} {start|stop|restart|force-reload}” >&2

exit 1

;;

esac


exit 0

## Fin de script


Ok, ahora lo hago ejecutable:


$ sudo chmod +x /etc/init.d/openerp-server


Lo probamos(verifica que lo tuvieras antes parado):


$ sudo /etc/init.d/openerp-server start


Compruebo que está cargado:


$ sudo ps aux | grep openerp-server

joseba 11376 1.5 2.4 36788 12780 ? Sl 20:16 0:00 /usr/bin/python ./openerp-server.py –config=/etc/openerp-server.conf


Y ahora lo pruebo con un cliente, con lo que debería conectar sin problemas, como hasta ahora.

Ya que tenemos el script, lo que nos falta es indicarle a Ubuntu que quiero que arranque con el inicio, y se desconecte al apagar:

$ sudo update-rc.d openerp-server defaults


Reiniciamos el ordenador y lo probamos.



Instalación cliente web


$ cd cliente-web50/lib

$ ./populate.sh

$ cd ..

$ sudo python setup.py install

O bien $ sudo easy_install .

Esto lo instala en /usr/local/bin/openerp-web


Copiamos el archivo de configuración incluido al directorio /etc


$ sudo cp /usr/local/lib/python2.6/dist-packages/openerp_web-5.0.15-py2.6.egg/config/openerp-web.cfg /etc/

(todo en una línea)

Asegurarnos que el archivo de configuración del cliente web tiene los datos correctos de acceso al servidor, descomentando las líneas para guardar los logs del cliente web:

$ sudo nano /etc/openerp-web.cfg

Cambiamos:

# logging

#log.access_file = “/var/log/openerp-web/access.log”

#log.error_file = “/var/log/openerp-web/error.log”

Por (ajústalo a tus necesidades):

# logging

log.access_file = “/var/log/openerp/openerp-web_access.log”

log.error_file = “/var/log/openerp/openerp-web_error.log”



El directorio ya está creado anteriormente, asi que sólo debemos crear los archivos:


$ touch /var/log/openerp/openerp-web_access.log

$ touch /var/log/openerp/openerp-web_error.log


No utilizo el sudo, recordemos que el directorio ya pertenecía al usuario ‘joseba’, que es el mío propio de Ubuntu, con lo que no necesito ser superusuario.

En el comando chown debemos especificar el usuario que ejecutará el cliente-web, especificado anteriomente mediante la clausula USER, y que además debe ser un usuario que exista en el sistema.

Para no tener que ejecutarlo manualmente (salvo para pruebas), ahora debemos copiar su script de arranque en /etc/init.d (también lo provee el mismo cliente):

$ sudo cp /usr/local/lib/python2.6/dist-packages/openerp_web-5.0.15-py2.6.egg/scripts/openerp-web /etc/init.d/

(todo en la misma línea)


Debemos modificar en el script de inicio el parámetro USER por un usuario del sistema que ya exista (el que ejecutará el cliente web), y también modifica el parámetro DAEMON que desde Ubuntu 9.10 cambia el path de instalación:


$ sudo nano /etc/init.d/openerp-web


USER=”joseba”

DAEMON=/usr/local/bin/openerp-web


Lo hacemos ejecutable:

$ sudo chmod +x /etc/init.d/openerp-web


Ahora propagar los scripts por los runlevel para que se inicie al inicio del sistema:

$ sudo update-rc.d openerp-web defaults


Lo arrancamos con (en background):

$ sudo /etc/init.d/openerp-web start


O bien en la consola, para ver la salida:

$ openerp-web


Y nos conectamos desde cualquier navegador web a la ip del servidor http://ip_servidor:8080


(Recuerda que tienen que estar corriendo primero la parte servidor)



Añadir localización española y nuevos módulos a OpenERP

Antes del siguiente punto, que indica cómo utilizar nuestras bases de datos creadas anteriormente o bien en otro OpenERP, indicaré cómo enlazar los nuevos módulos y la localización española al directorio addons del servidor.

Utilizaremos enlaces blandos desde addons en el servidor a las carpetas que creamos en el paso 1, de manera que si en un futuro actualizamos esas carpetas, no será necesario volcarlas de nuevo al servidor, aunque si será necesario y muy importante realizar lo que viene explicado en el paso 7


Paramos openerp-server y el cliente web. Esto dependerá de cómo tengas configurado el sistema, pero algo infalible es hallar el pid del server y matarlo con un kill -9

$ sudo ps aux | grep openerp-server

joseba 13830 1.9 0.3 50868 15376 pts/0 Sl+ 18:00 0:00 /usr/bin/python ./openerp-server.py –config=/etc/openerp-server.conf

joseba 13836 0.0 0.0 4020 764 pts/3 S+ 18:01 0:00 grep openerp-server


$ sudo kill -9 13830


Nos metemos en el directorio addons del servidor openerp:

$ cd /usr/local/lib/python2.6/dist-packages/openerp-server/addons/

Y ahora enlazamos a los directorios del paso 1:

$sudo ln -sf origen destino (-s para enlaces blandos, -f para forzar la copia aunque ya exista)

Así que:

$ sudo ln -sf /home/joseba/src/openerp/addons50/* .

$ sudo ln -sf /home/joseba/src/openerp/extra-addons50/* .

$ sudo ln -sf /home/joseba/src/openerp/openerp-spain/extra_addons/* .

$ sudo ln -sf /home/joseba/src/openerp/openerp-spain/l10n_es/* .

$ sudo ln -sf /home/joseba/src/openerp/openerp-spain/l10n_es_extras/* .

$ sudo ln -sf /home/joseba/src/openerp/openerp-spain/l10n_ca_ES/* .


Ya tenemos supervitaminado el directorio addons, podemos pasar al siguiente paso. (564 módulos me ha dado a mí)

Sólo recuerda en el cliente darle a actualizar los módulos para que aparezcan los nuevos y los modificados.

Uso de bases de datos creadas anteriormente


Para utilizar nuestras bases de datos ya creadas, necesitaremos actualizarlas con los nuevos módulos.

  1. Tenemos los módulos enlazados en el directorio addons del servidor

  2. Tengo la base de datos (bdd) importada al postgres, bien mediante el asistente del cliente web o bien con pgadmin3 (Depende de con cual realizara anteriormente el backup). Yo realizo las copias mediante PgAdmin3, que sirve para gestionar gráficamente bases de datos postgresql

  3. Iniciamos openerp-server con un par de opciones para cada base de datos, –update=all y –datebase=nombre_de_mi_bdd

    $ sudo python /usr/local/lib/python2.6/dist-packages/openerp-server/openerp-server.py –config=/etc/openerp-server.conf –update=all –database=malagaTIC

INFO:init:[01]: Assertions report:

[2010-12-29 18:49:48,485][malagaTIC] INFO:init:[02]: Level success failed

[2010-12-29 18:49:48,485][malagaTIC] INFO:init:[03]: error 1 0

[2010-12-29 18:49:48,485][malagaTIC] INFO:init:[04]: total 1 0

Hay un aviso o error, en concreto es que el módulo ‘Poweremail’ no se a podido cargar, y mi bdd si lo utiliza. Lo veo en el log del server:

[2010-12-29 18:49:48,286][malagaTIC] WARNING:init:module poweremail: module not found


El error se debe a que poweremail tiene su propio repositorio, así que lo descargo:

$ bzr branch lp:poweremail otros_modulos/poweremail

Lo enlazo al servidor:

$ sudo ln -sf /home/joseba/src/openerp/otros_modulos/* /usr/local/lib/python2.6/dist- packages/openerp-server/addons/

Paro el servidor y lo arranco de nuevo con la opción del –update y el –database

Y listo, base de datos actualizada con los nuevos módulos.

Es conveniente no dejar ningún ERROR o WARNING sin resolver (mirar los logs)


Ya me contáis como os ha ido.

Un saludo

Fuente: http://www.malagatic.com/blog/item/23-openerp-instalaci%C3%B3n-para-ubuntu-1010-1004lts