26 de diciembre de 2010

Cambiar contraseña usuario Postgresql

Para cambiar la constraseña de un usuario Postgresql, hacer:

$ sudo su - postgres
$ psql
postgres=# alter user USUARIO with encrypted password 'NEW-PASS';
ALTER ROLE
postgres=# \q

Asegurarse que el fichero de permisos de Postgresql está correcto.

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

# TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD
local   all         all                               md5

$ sudo /etc/init.d/postgresql restart

Referencias:
http://markmail.org/message/y2lh4vnbojl5r4rc

22 de diciembre de 2010

Setup OpenERP Ubuntu 10.10

Continuamos con la configuración del servidor OpenERP. En campitulos anteriores teníamos las siguientes configuración:

  • PostgresSQL, con usuario para OpenERP, openerp
  • OpenERP instalado.

Indicamos la conexión de ERP a la BD. Editamos openerp-server.conf

$ sudo vi /etc/openerp-server.conf

# Specify the database user name (default None).
db_user = openerp

# Specify the database password for db_user (default None).
db_password = password

Arrancamos el server. Podemos ver los logs en /var/log/openerp.log

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

Opcional: Crear base de datos de demo.


El password por defecto (como se indica) para el usuario admin de OpenERP, es admin.



Después seleccionamos un perfil (escogemos el mínimo) y rellenamos los datos de nuestra compañía.

Continuará...

Referencias:
http://doc.openerp.com/book/1/1_1_Inst_Config/1_1_Inst_Config_install.html#installation-on-linux-ubuntu
http://doc.openerp.com/book/1/1_1_Inst_Config/1_1_Inst_Config_db_create.html

19 de diciembre de 2010

Install OpenERP Ubuntu 10.10 (for dummies)

Otra instalación más fácil (que la comentada en otros capitulos) es instalar los paquetes directamente desde el repositorio de Ubuntu.

Suponemos que ya está montada la base de datos PostgresSQL con un usuario para OpenERP.

Hacemos:

$ sudo apt-get update && sudo apt-get upgrade
$ sudo apt-get install openerp-server openerp-client

Esto instalará el cliente, el server y sus dependencia. Pone el server como demonio y lo arranca.

Configurando openerp-server (5.0.14-0ubuntu1) ...

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Open ERP uses a PostgreSQL database to store its data. With the first *
* generation of packages, you have to setup this database manually.     *
* Please read /usr/share/doc/openerp-server/README.Debian how to do it. *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

Starting openerp-server: openerp-server.

Continuará...

Referencias:
http://doc.openerp.com/book/1/1_1_Inst_Config/1_1_Inst_Config_install.html#installation-on-linux-ubuntu

17 de diciembre de 2010

Eclipse bloqueado: Loading Workbench...

Cuando tu amigo Eclipse le da por quedarse colgado/congelado (hangs) en la pantalla de inicio. Más concretamente cuando está...

Loading Workbench...


Una solución un poco bestia (¿quien dijo lo de matar moscas a cañonazos? ¿Raid?) es eliminar la configuración del workspace.
  • Paramos eclipse
  • $ rm ~/workspace/.metadada -rf
  • Arrancamos eclipse
  • Configuramos entorno eclipse (tedioso!!!!)
  • Importamos los proyectos: File > Import... > Existing Projects into Workspace


Hasta definir cual es exactamente lo que produce el bloque dentro de .metadata, habrá que hacer esto. Sobre todo cuando hay prisa.

Referencias:

14 de diciembre de 2010

Uninstall software Python

Como sabréis el setup.py no tiene comando uninstall o remove. Para eliminar un software python utilizaremos la opción --record del comando install.

--record: filename in which to record list of installed files

Por lo que tendremos que re-instalar.

sudo python setup.py install --record files.txt

Ahora solo nos queda borrar todos los ficheros y directorios, ayudándonos del comando xargs, el cual ejecuta ordenes para cada linea del fichero.

cat files.txt | xargs rm -rf

Si tienes alguna reserva al ejecutar el rm -rf, visualiza el fichero:

cat files.txt | sudo xargs echo

Resumiendo:

sudo python setup.py install --record files.txt
cat files.txt | sudo xargs echo

Referencias:
http://kmandla.wordpress.com/2009/01/08/there-is-no-setuppy-uninstall/

13 de diciembre de 2010

Install OpenERP Ubuntu 10.10

Bienvenido al maravilloso mundo de OpenERP (anteriormente conocido como TinyERP).

A igual que mi colega m1cm3, haré una serie de entradas destinadas a instalar/configurar/aprender OpenERP, eso sí, en Ubuntu 10.10.

Comenzamos con la instalación. Describo los pasos a seguir para tener una instalación básica con los datos de ejemplo.

Versiones:

  • Ubuntu 10.10
  • PostgresSQL 8.4
  • OpenERP 5.0.15
  • Python 2.6.6

PostgreSQL

Instalamos es servidor desde el repositorio

$ sudo apt-get install postgresql

Cambiamos permisos del usuario admin: postgres

$ sudo su - postgres
$ psql postgres
postgres=# \password postgres
Ingrese la nueva contraseña: password
Ingrésela nuevamente: password
postgres-# \quit
$ exit

Habilitamos el login de forma local al servidor de postgresql. Y cambiamos el modo de acceso de los usuarios de cualquier tipo y a cualquier base de datos a md5 (por derfecto está a ident). Si no, nos encontraremos un mensaje similar cuando intentemos hacer un login local.

$ psql -d postgres -U postgres -W
psql: FATAL:  la autentificación Ident falló para el usuario <<postgres>>

Editamos y modificamos el fichero pg_hba.conf:

$ vi /etc/postgresql/8.4/main/pg_hba.conf


# TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD
# "local" is for Unix domain socket connections only

local   all         all                               md5

Reiniciamos el servidor postgresql.

$ sudo /etc/init.d/postgresql restart
 * Restarting PostgreSQL 8.4 database server

Creamos un usuario para OpenERP, openerp, indicando que será un superusurio.

$ sudo su - postgres
$ createuser --createdb --username postgres --no-createrole --pwprompt openerp
Ingrese la contraseña para el nuevo rol: password
Ingrésela nuevamente: password
¿Será el nuevo rol un superusuario? (s/n) S

Comprobamos si todo ha ido correcto.

$ psql
postgres=# SELECT * FROM pg_user ;
 usename  | usesysid | usecreatedb | usesuper | usecatupd |  passwd  | valuntil | useconfig
----------+----------+-------------+----------+-----------+----------+----------+-----------
 openerp  |    16384 | t           | t        | t         | ******** |          |
 postgres |       10 | t           | t        | t         | ******** |          |
(2 filas)
\quit

Probamos el login del usuario openerp a la base de datos por defecto postgres.

$ psql -d postgres -U openerp -W
Contraseña para usuario openuser:
psql (8.4.5)
Digite «help» para obtener ayuda.

postgres=# \quit

Todo ok.

EDIT: una mejor y más rápida instalación, seguir aqui

OpenERP

Instalaremos la última versión estable del server y demás clientes. Nos la descargamos desde su web: http://www.openerp.com/downloads


Instalando el openerp-server

Instalamos las librerías necesarias para el servidor:

$ sudo apt-get install python python-psycopg2 python-reportlab python-egenix-mxdatetime python-tz python-pychart python-pydot python-lxml python-vobject python-yaml

Descomprimimos el server y lo testeamos (sin instalación), de esta forma podremos saber si están todas las dependencias satisfechas o por el contrario nos falta alguna librería.

$ tar xvfz openerp-server-6.0.0-rc1.tar.gz
$ cd openerp-server-6.0.0-rc1/bin
$ python openerp-server.py


Con python openerp-server.py -h obtendremos todos los comandos del server.

Realizamos la instalación.

$ pwd
/home/b3ni/bin/openerp-server-6.0.0-rc1
$  sudo python setup.py install

Al finalizar ya está instalado, si no ha ocurrido ningún problema. Podemos hacer un whereis para ver donde está el bin.

$ whereis openerp-server
openerp-server: /usr/local/bin/openerp-server

Instalando el cliente gráfico

Librerías:

$ sudo apt-get install python python-gtk2 python-glade2 python-matplotlib python-egenix-mxdatetime python-hippocanvas

Descomprimimos y testeamos:

$ tar xvfz openerp-client-5.0.15.tar.gz
$ cd openerp-client-5.0.15/bin/
$ python openerp-client.py



Lo instalamos:

$ cd openerp-client-5.0.15/
$ sudo python setup.py install

Lo probamos y obtenemos el siguiente error, indicando que no puede encontrar openerp-icon.png y proponiendonos revisar el fichero de configuración .openerpc

$ openerp-client

CRITICAL:init:No se ha podido abrir el archivo «openerp-icon.png»: No existe el fichero o el directorio
CRITICAL:init:Ensure that the file /home/b3ni/.openerprc is correct

Editamos el fichero .openerpc e indicamos la ruta correcta al cliente (/usr/local/share):

[path]
pixmaps = /usr/local/share/pixmaps/openerp-client
share = /usr/local/share/openerp-client

Instalando el cliente web

Librerías:

$ sudo apt-get install python-cherrypy3 python-pybabel python-mako python-simplejson python-formencode python-pyparsing python-tz python-xlwt

Descomprimimos y configuramos:

$ tar xvfz openerp-web-5.0.15.tar.gz
$ vi openerp-web-5.0.15/config/openerp-web.cfg

En este fichero podemos configurar el servidor web. Por ejemplo el tipo de logging o el puerto donde escuchará el servidor web. Por defecto escuchará en el puerto 8080.

Arrancamos el server web:

$ pwd
/home/b3ni/bin/openerp-web-5.0.15
$ ./openerp-web.py
[12/Dec/2010:11:29:44] ENGINE Bus STARTING
[12/Dec/2010:11:29:44] ENGINE Started monitor thread '_TimeoutMonitor'.
[12/Dec/2010:11:29:44] ENGINE Started monitor thread 'Autoreloader'.
[12/Dec/2010:11:29:44] ENGINE Serving on 0.0.0.0:8080
[12/Dec/2010:11:29:44] ENGINE Bus STARTED

Ya podemos acceder desde nuestro navegador en la dirección localhost:8080


Continuará...

Referencias:
http://doc.openerp.com/install/linux/index.html
http://brunogirin.blogspot.com/2010/05/installing-openerp-on-ubuntu-1004-lts.html
http://doc.openerp.com/install/linux/server/index.html
http://doc.openerp.com/install/linux/client/index.html

6 de diciembre de 2010

lxml.etree.XMLSyntaxError: PCDATA invalid Char value

Al procesar un fichero xml con la librería lxml de Python, me he encontrado con el siguiente error en el parsing:

lxml.etree.XMLSyntaxError: PCDATA invalid Char value 19, line 3642, column 70

Provocado por un carácter extraño que se ha colado en los datos, representado por ^S

<Row>
    <idconcepto>3501</idconcepto>
    <ididioma>ITA</ididioma>
    <texto>Gestione ^S Amministrazione</texto>
    <patron>Gestione ^S Amministrazione</patron>
</Row>

Para evitar que salte este error, establecemos el parámetro recover del parser lxml a True.

dom = etree.parse(file_xml, \
      etree.XMLParser(ns_clean=True, recover=True))

Referencias: 
http://codespeak.net/lxml/parsing.html