Este post ha sido leído 340414 veces!
En esta primera parte vamos a ver la instalación de OpenERP7 sobre ubuntu, con la correspondiente instalación de dependencias, y posterior ejecución.
Utilizaremos los fuentes descargados desde Launchpad, para tener la versión más actual, y con más bugs solucionados.
Primeros pasos instalación openerp
- Actualización del sistema12$ sudo apt-get update$ sudo apt-get dist-upgrade
- Configuración de los locales (ajustar la zona horaria)
1 | $ sudo dpkg-reconfigure tzdata |
- Opcional pero recomendado, conectarse con un servidor horario para estar siempre actualizado (NTP)
- Creación del usuario (llamado openerp7) bajo el cual se ejecutará openerp7 en el sistema. No tendrá acceso a la shell, con lo que no podrá hacer login.
- 1$ sudo adduser openerp7 --shell /bin/false --no-create-home
OpenERP – Postgresql 9.1
Instalaremos la versión 9.1, pero si tu sistema trae alguna más moderna, puede valer.
1 | $ sudo apt-get install postgresql |
Creación del usuario que accederá desde openerp7 a postgresql9.1 (no tiene nada que ver con el usuario linux que ejecuta openerp, y que hemos creado anteriormente)
Entrando como usuario postgres para crear el usuario openerp con acceso a crear bases de datos.
1 2 3 4 5 | # su - postgres o $ sudo su - postgres |
Creamos el usuario, sólo con permisos para crear y editar (eliminar) sus propias bases de datos. Le ponemos la password que creamos conveniente, pero no olvidarla, en mi caso openerp, no recomendable mas que para test y pruebas:
1 | $ createuser --createdb --username postgres --no-createrole --no-superuser --pwprompt openerp |
Nota: Si tenemos varias versiones de postgresql, y queremos tener distintos usuarios para cada una, debemos indicar el puerto en el que escucha la versión que deseamos, mediante el parámetro -p num_puerto
Si no especificamos puerto, coge el por defecto, el 5432, con lo que el usuario se creará para la versión que está escuchando en ese puerto (normalmente la primera que instalamos)
Salimos del usuario postgres:
1 | $ exit |
Configuramos para que sea posible el acceso a postgres sin necesidad de tener una cuenta en el sistema, editando pg_hba.conf:
/etc/postgresql/9.1/main/pg_hba.conf
De manera que los usuarios dados de alta en postgres , como el anterior llamado openerp, también puedan conectarse.
1 | $ sudo nano /etc/postgresql/9.1/main/pg_hba.conf |
Y modificar:
l
1 | o local all all peer |
Por:
1 | local all all md5 |
Recargamos la configuración:
1 | $ sudo service postgresql reload |
Ya tenemos postgres correctamente configurado, lo que quiere decir, que podríamos probar a acceder para verificar la correcta configuración:
1 | $ psql -U openerp7 -W template1 |
Puedes probar con el template0 si te da algún problema.
Debes introducir la password anterioremente creada, y no debería fallar, si no, mejor depurar esto antes de continuar.
Si has accedido correctamente, CTRL-D para salir de la consola de postgres.
OpenERP7 dependencias
Empezamos con Bazaar, herramienta con la que descargaremos los fuentes desde Launchpad.
1 | $ sudo apt-get install bzr |
Dependencias python. En esta caso, mejor matar moscas a cañonazos, y meter todas. Si quieres ajustar más, puedes ir instalando según openerp ‘se queje’, es decir, cuando falle al cargar algo que requiere, pero algunos errores no son demasiados descriptivos.
Aquí copiar y pegar suele fallar por el tema de las barras, ya me contáis qué tal va:
1 2 3 4 5 6 7 8 9 10 11 12 13 | $ sudo apt-get install libgvc5 graphvizpython-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 python-yaml python-egenix-mxdatetime \ python-vobject python-imaging python-beaker python-unittest2 \ python-mock python-docutils python-jinja2 python-babel \ python-antlr python-feedparser python-gdata python-libxml2 python-libxslt1 python-psutil python-pybabel python-utidylib |
1 | $ sudo apt-get install python-werkzeug python-vatnumber python-simplejson python-openid python-ldap |
Si alguna dependencia os da error, o requerís las versiones más modernas, podéis utilizar el instalador de paquetes de python, pip:
1 | $ sudo pip install unittest2 mock |
Si utilizas el módulo de documentación, la siguiente dependencia permite indexar el contenido de los ficheros en formato pdf:
1 2 3 | $ sudo apt-get install poppler-utils $ sudo easy_install babel |
Si vas a instalar algún módulo de google, descargamos e instalamos:
gdata-python-client desde http://code.google.com/p/gdata-python-client/downloads/list
1 2 3 4 5 6 7 8 9 | $ sudo apt-get install unzip $ wget http://gdata-python-client.googlecode.com/files/gdata-2.0.17.zip $ unzip gdata-2.0.17.zip $ cd gdata-2.0.17/ $ sudo python ./setup.py install |
Descargar e instalar OpenERP7
Suelo instalar las instancias de openerp, bajo el directorio raiz /opt/, de manera que lo haremos así en este tutorial.El proceso de descarga puede tardar un rato, ya que se descargarán las ramas necesarias, con todas las ‘fotos’ anteriores (recordemos que es un sistema de versiones). Esto quiere decir, que en sistemas con poca memoria (digamos 512MBytes, 640MBytes), posiblemente después de descargar un buen rato, se agote la memoria y falle el proceso. Al final veremos cómo solucionar este problema.
Destacar, que la localización española no está operativa al 100% aún en OpenERP7, aunque se está trabajando en ello por parte de algunas empresas. Si que podemos tener PGCE2008 y algunos módulos necesarios y básicos, como el de la separación de secuencias de facturación y asientos.
Otros temas, como modelos fiscales, están todavía sin acabar.
De momento descargaremos los fuentes para:
- openerp-server
- openerp-web client
- openerp-addons
Los fuentes, y el sistema openerp, los guardaré y ejecutaré en /opt/openerp7, así que creo los directorios pertinentes:
1 | $ sudo mkdir /opt/openerp7 |
De momento trabajaré con mi usuario actual, pero al final asignaré los permisos adecuados para que el usuario openerp sea el que ejecuta los procesos.
Asigno permisos para acceso total a mi usuario openerp7 (empezamos a gestionarlo el directorio con root):
1 | $ sudo chown openerp7 /opt/openerp7/ |
Entro en el directorio y comienzo las descargas de los fuentes:
1 | # cd /opt/openerp7 |
OpenERP-server70:
1 | # bzr branch lp:openobject-server/7.0 openerp-server70 |
Cliente web 7.0:
1 | # bzr branch lp:openerp-web/7.0 openerp-web70 |
Cliente GTK:
NO HAY PARA ESTA VERSIÓN, DETALLE A TENER EN CUENTA
Localización española, para la versión 7.0 (OJO! no está completa):
1 | # bzr branch lp:openerp-spain/7.0 openerp-spain70 |
Addons70:
1 | # bzr branch lp:openobject-addons/7.0 addons70 |
Extra-addons70:
Nota: aquí puedes encontrar de todo, pero puede que haga fallar tu implementación, úsalo bajo tu propio criterio. Quizás mejor no descargar, y según necesidad, buscar la app necesaria en las apps de openerp (https://apps.openerp.com/apps)
1 | # bzr branch lp:openobject-addons/extra-trunk extra-addons70 |
Los addons pesan bastante (797 MB. a enero 2013), así que si quieres descargar sólo una revisión en concreto, por ejemplo la 9474 (última a día 23SEPT2013, puedes revisar launchpad para comprobar cuál es la última),puedes utilizar el comando:
1 | $ bzr checkout --lightweight lp:openobject-addons/7.0 addons70 -r 9474 |
Esto habrá descargado 277 MB (hemos ahorrado 520MB de descarga), con lo que ahorraremos espacio en disco, problemas de bazaar en máquinas con poca memoria, y ancho de banda = tiempo.
Nota: Puedes omitir la revisión a descargar, con lo que se descargará la última existente.
Bien, aquí lo dejamos hasta una nueva entrega.
Buenas, Juanjo y compañía.
Muy buen post, que no había ninguno en español para OpenERP 7 con este nivel de detalle. De hecho, me anoto varios trucos y cosas que no tenía en mi checklist propia. Permitidme varios comentarios desde mi experiencia personal o cosas que he visto para intentar enriquecer un poco más la publicación y que pueda ser la referencia definitiva:
– ¿Os interesa realmente ir creando un usuario de sistema y de postgres específico para cada versión (openerp7, openerp8, etc)? Yo utilizo uno genérico “openerp”, y así cuando he actualizado con OpenUpgrade a una nueva versión, no he tenido que cambiar permisos ni nada o dejar un usuario con un nombre extraño.
– En muchos de los comandos (bzr checkout –lightweight), si se copia y pega de la página, en lugar de aparecer doble guión, aparece un guión más largo (el guión tipográfico). Supongo que será cosa del procesador de textos, que le gusta hacer esa sustitución, jeje.
– Os recomendaría que echarais un vistazo a las ramas OCB y hablarais sobre ello en el post. Funcionan muy bien, tienen más parches que la oficial y para la versión 7, una cosa que considero indispensable: extiende la vista del formulario a todo el ancho de pantalla.
– Yo personalmente huiría totalmente de la rama extra-trunk. Ya están casi todos los módulos migrados a proyectos de la comunidad, y estos proyectos van a estar muy pronto en la nueva apps.openerp.com, accesible directamente desde el interfaz de OpenERP, por lo que no es necesaria y se evita problemas, incompatibilidades, etc.
– Para evitar que alguien “lea en diagonal” y copie/pegue un comando de bazaar sin haber hecho cd, os recomendaría que en dichos comandos pongáis la ruta absoluta (/opt/openerpt/addons70, por ejemplo), y así evitáis efectos laterales.
Gracias por invertir el tiempo para escribir la entrada y aguantar mi cháchara en forma de comentario
Un saludo.
Gracias Pedro, tus comentarios, por supuesto, siempre son bienvenidos.
Sobre tu comentario (por orden):
– Me gusta gestionar totalmente qué hace cada instancia de OpenERP.
Comento lo de instancia, porque, así puedo tener en una misma máquina, por ejemplo, servicios saas adaptados totalmente al cliente (su cliente web con su css particular), sus módulos personalizados.
Esto también me permite tener varias instancias de una o diferentes versiones de openerp, por ejemplo, por un lado las ramas OCB y por otro las oficiales, y al tener cada una su usuario, en el selector de bases de datos, sólo verás las que le corresponden, que además fallarían y probablemente fastidiarían la base de datos correspondiente a esa instancia si el usuario realiza cualquier acción sobre módulos que puede que no estén o bien le de por actualizar o …
El tema de las actualizaciones también es muy peliagudo, por lo que prefiero tratarlo desde la base (lo cubriré con otro post más adelante)
– Cierto, voy a intentar corregirlo. Es un dolor de cabeza escribir en condiciones en un CMS (da igual el tinyMCs que el JCE que . . .). De hecho, el post, al copiar desde Writer me había fastidiado el feed de la web.
– Las ramas OCB prefiero cubrirlas a posteriori, ya comento algo sobre la Openerp-Community-Association en el último apartado de http://www.todoopenerp.es/como-empiezo/
– Edito la entrada y aviso sobre ello, tienes razón, es ‘peligroso’
– Lo tengo en cuenta, gracias de nuevo
Es agradable verte por aquí comentando, un saludo!
¡Buenas de nuevo!
Llevas toda la razón con lo aislar de esa manera para entornos con múltiples instancias (como uno de desarrollo). No lo había pensado de esa forma. Me la anoto. Aunque para un cliente, que no va a mantener múltiples versiones/instancias a la vez, creo que sigue siendo más recomendable el enfoque mono-usuario para evitar toda esa gestión extra (que tampoco es que sea mucho, también sea dicho).
En cuanto a lo de actualizar, creo que se está normalizando cada vez más la cosa (a nivel de comunidad y de OpenERP) como para que no haga falta rezar dos avemarías cuando se quieren actualizar las ramas. Con el control de versiones de Bazaar, se pueden integrar fácilmente parches propios con los oficiales (o los de la OCB), y gracias al mantenimiento de la estructura de la BD entre versiones, sólo hace falta arrancar con el parámetro –update=all para tener todo funcionando. Las migraciones entre versiones ya son otra historia, pero también con OpenUpgrade está cada vez más fácil.
Un saludo.
Buenas, muchas gracias por el post-manual. Soy nueva en esto de OpenErp y me ha servido muchísimo de ayuda. Está muy bien explicado y resumido sin meter paja innecesaria.
Un saludo.
Gracias por pasarte por aquí.
Un saludo
Hermano, pero como termino la instalación?? Buen Post
Muy buenas.
Lo primero agradecerte el tutorial, me ha sido de utilidad, ya que mucho tiempo querer crear dos instancias (openerp 6.1 y 7) y no había sido capaz. Con tu guía a la 1ª, gracias.
Pero tengo un algunas dudas:
– 1) no pude instalar graphvizpython-lxml
¿es muy imprescindible?
– 2) Para que me funcionara en el fichero de configuración en “addons_path=” tuve que incluir todos los siguientes directorios:
– /opt/openerp7/openerp-server70/openerp/addons,
-/opt/openerp7p/extra-addons70,
-/opt/openerp7p/openerp-spain70,
– /opt/openerp7p/openerp-web70/addons,
-/opt/openerp7p/addons70
¿esto es correcto? o hice algo mal.
-3) Haciendo pruebas he comprobado que me funciona todo menos:
* Introducir lineas en pedidos de ventas, cuando se pone el articulo dice que la descripción es obligatoria y no completa resto de campos, precio, etc.
* En “ordenes de pago”, cuando voy a imprimir una orden de pago, me dice:
“report.remesas.report
(, KeyError(u’report.remesas.report’,), )
He revisado todos los módulos, bajado las versiones mas actuales, etc. pero no he encontrado aun el problema.
Os agradecería si me pudierais decir si se me ha pasado realizar algo.
Muchas gracias,
Luis
Para las librerías que no has podido instalar, simplemente observar los logs por si falla algo en el ERP, esto es algo general.
En el addons_path, el orden es muy importante, ya que determina qué módulos tienen preferencia. extra-addons70 no lo metería hasta tenerlo todo comprobado.
Prueba primero a crear una base de datos muy simple, con ventas, y compras, testea los procesos. Me da que tienes instalado algún módulo que no anda muy fino, por lo que te falla.
Lo dicho, poco a poco, y no instales de momento nada de la localización española, hasta después de realizar los test, así depuras qué módulo es el que está fallando.