Tag Archive | Programación

OpenERP 7 en Docker con jasper report y python 2.7 cuando pip ya no anda más


Estas notas son para contar la aventura LOCA de montar un servidor viejo de OpenERP 7 en el año 2023. (funciono perfecto en un server por 10 años)

Primero hay que decir que esta versión anda en python 2.7 que hoy ya se dejo de ser soportardo y tiene problemas con instalación de librerías con pip necesarias. ¡ uuuuuuuuu !… si, primer luz roja.

Por esta razón decidí usar la versión docker del servidor (que ya sabemos que anda) y desde ahí montar el código fuente. (no se hasta cuando va a funcionar o se va a encontrar… trabajito extra: hacer copia por las dudas que desaparezca)

También quiero poder modificar el código así que necesito instalar el fuente o que ande el fuente en el docker de alguna forma.

En su momento usé JasperReport para la generación de reportes. Se instalaba un server de reportes (creo que usaba apache y tomcat server)….uffffff!

Debe ser por estas cosas que se privilegia actualizar la versión ANTES de hacer las modificaciones.

Logre generar un banco de trabajo con Docker y poder hacer modificaciones, incluso modificar codigo andando… asi que es posible.

Lo bueno de utilizar docker es que es replicable y estable.

Ahora empieza la aventura de importar los datos y actualizar versiones.

Si te sirvió este apunte y quieres invitarme un café o una refrezco puede hacerlo pulsa AQUI.
Si en cambio quieres ayudarme a seguir haciendo y juntando apuntes utiles pulsa AQUI.

¿Cómo se si es Ubuntu y que codename tengo desde un script?


En muchos casos surge la necesidad de conocer desde la ejecución de un script que codename o que versión tengo. Para esto esta el comando «lsb_release» que tiene ésta ayuda:

$ lsb_release –help
Usage: lsb_release [options]

Options:
-h, –help         show this help message and exit
-v, –version      show LSB modules this system supports
-i, –id           show distributor ID
-d, –description  show description of this distribution
-r, –release      show release number of this distribution
-c, –codename     show code name of this distribution
-a, –all          show all of the above information
-s, –short        show requested information in short format

Para saber si es ubuntu hacemos:

$ lsb_release -si

para obtener el codename haremos:

$ lsb_release -sc

y para obtener la versión, haremos:

$ lsb_release -sr

Ahora desde el contexto de un script:

#!/bin/sh
clear
distribucion=`lsb_release -si`
version=`lsb_release -sr`
codename=`lsb_release -sc`
echo «distribucion=»$distribucion
echo «version=»$version
echo «codename=»$codename

Ahora puedes ayudarme a continuar para hacer y juntar apuntes utiles: Pulsa AQUI para dar una DONACION simple.

Buena Vida!

 

Cómo hacer un servidor GIT propio


Esto lo realice junto a mi amigo Diego Wald en un kubuntu 10.04 y no intenta dar una explicación completa del funcionamiento del GIT. Solo haremos funcionar un servidor y un cliente y los comunicaremos.

GIT se apoya en el uso del ssh, así que previamente debe estar funcionando correctamente en la maquina que contiene los repositorios (en adelante SERVER). Será a la que nos conectaremos para depositar las modificaciones de nuestros programas. El server puede ser la misma maquina donde estamos programando.

Preparacion del SERVER

Empezamos en el SERVER instalando el GIT:

$ sudo apt-get update
$ sudo apt-get install git-core

Ahora agregamos el usuario git:

$ sudo adduser git

y colocamos una clave suficientemente segura y nos aseguramos que la carpeta ssh sea accesible al usuario.

$ sudo mkdir /home/git/.ssh
$ sudo chown -R git:git /home/git/.ssh

Ahora probamos que nos podemos conectar al SERVER por ssh con el usuario git. Recordar que si se tiene la restricción de usuario () en el ssh es necesario agregarle al nuevo git.

$ ssh git@myserver.com

Nota: si el servidor ssh esta «escuchando» en otro puerto distinto del 22 (ejemplo: 123) usar opción «-p 123«.

Si estamos usando nuestra propia maquina myserver.com seria la ip 127.0.0.1. Logrado ésto (y sin salir del ssh) creamos una carpeta e inicializamos un repositorio en ella.

$ mkdir mi_proyecto
$ cd !$
$ git --bare init

Ahora podemos cerrar el ssh con:

$ exit

Preparación del CLIENTE

En la maquina CLIENTE instalamos el git

$ sudo apt-get update
$ sudo apt-get install git

Le indicamos a GIT quien soy

$ git config --global user.name "Nombre y Apellido"
$ git config --global user.email "mi_email@algo.com"

Algunos parámetros útiles para el modo texto pueden ser:

$ git config --global color.status auto
$ git config --global color.branch auto
$ git config --global color.diff auto
$ git config --global color.interactive auto

Nos paramos donde queremos poner nuestros proyectos

$ md mi_codigo
$ cd !$

Partimos de la base que no tenemos nada de código hecho aun. Entonces clonamos el contenido del servidor que aun esta vacío.

$ git clone git@127.0.0.1:mi_proyecto

Esto inicializa un git en esa carpeta y trae los datos del servidor. En caso de que el SERVIDOR tenga el ssh escuchando en el puerto 522 en ves del que viene por defecto (22) se debe hacer:

$ git clone ssh://git@127.0.0.1:522/~/mi_proyecto

con esto nos crea la carpeta mi_proyecto dentro de mi_codigo con lo necesario.

Agregar modificaciones al repositorio

Continuando con el ejemplo, supongamos que copiamos dentro de mi_proyecto unos archivos que ya tenemos y nos paramos dentro. En este punto le tenemos que indicar al git que prepare estos para mandarlos al repo y nos pedirá que pongamos una descripción de la modificación.

$ git add .
$ git commit "Subo mi código con este comentario"

Y ahora le decimos que lo mande al repositorio.

$ git push origin master

Y asi finalmente habremos enviado los datos al SERVIDOR desde el CLIENTE.

Es conveniente trabajar con ramas distinta a nuestro código maestro funcional. Cuando agregamos funcionalidades es conveniente usar una rama experimental de nuestro código hasta el momento que estemos decidido que esta nueva versión pasará a ser la master. Recomiendo que leas éste artículo.

Traer ultima versión desde el servidor

Primero nos tendremos que situar dento de la carpeta que tiene el .git (en este caso mi_proyecto) y hacer:

$ git pull

Ignorando archivos

Se le puede decir al GIT que ignore algunos archivos, creando un archivo llamado .gitignore dentro de la carpeta del proyecto (continuando con los ejemplos sería mi_proyecto). Dentro de éste archivo se puede poner nombres explícitos de archivos o alguna mascara. Un ejemplo del contenido puede ser (tomado de ACA):

#python specific
*.pyc
## generic files to ignore
*~
*.lock
*.DS_Store
*.swp
*.out
## archivos específicos
borrame.caca

Después de agregar el archivo hacer (Tomado de ACA y de ACA):

$ git rm -r --cached .
$ git add .
$ git commit -m "Ignoro los archivo declarados en .gitignore"

Ahora puedes ayudarme a continuar para hacer y juntar apuntes utiles: Pulsa AQUI para dar una DONACION simple.

CONCLUSION

Es muy importante conocer bastante bien el funcionamiento de ssh para que podamos hacer funcionar correctamente el GIT.

QUIERO SABER MAS

1) Como usar GIT diariamente
2) Que dice Wikipedia sobre GIT
3) Manual oficial de GIT completo (en ingles)

Buen viaje y Buena Vida!