domingo, 25 de marzo de 2012

python, wicd y python-updater



      El día de ayer actualicé mi distribución de funtoo GNU/Linux (cosa que hago regularmente semanal), cuando realizo la actualización me fijé que hay paquetes que se estan reinstalando y me percato que son versiones de python, así que no le presto mucha atención al asunto, la realidad está en que mi distro utiliza la versión 2.6 de python como base y no sé porque ya no esta soportada en las versiónes de los paquetes que tengo instalado, así que cuando se trata de iniciar el cliente de wicd (lo instalo, tal cual como me lo dice el manual de instalación de gentoo), este no inicia, lo trato de llamar desde la línea de comandos y me da el siguiente error:

$ wicd-client
Traceback (most recent call last):
  File "/usr/share/wicd/gtk/wicd-client.py", line 40, in
    import gtk
ImportError: No module named gtk

     Me da un error llamando al gtk, así que trato de hacer un emerge a pygtk, 

# emerge -av pygtk

 * IMPORTANT: 9 news items need reading for repository 'gentoo'.
 * Use eselect news to read news items.


These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild   R    ] dev-python/pygtk-2.24.0-r2  USE="-doc -examples -test" PYTHON_ABIS="2.7 -2.6" 0 kB

Total: 1 package (1 reinstall), Size of downloads: 0 kB

     La versión 2.6 ya no esta compilada, en vez de compilar de nuevo con soporte para la 2.6, decidí avanzar en la versión del python (debido a que gentoo nos da la libertad de escojer la versión de python con la cual deseemos trabajar) utilicé eleslect

# eselect python list
Available Python interpreters:
  [1]   python2.6 *
  [2]   python2.7
  [3]   python3.2
     
     Como se ve estoy utilizando la versión 2.6, así que para escojer la versión 2.7, hago lo siguiente:

# eselect python set 2

# eselect python list
Available Python interpreters:
  [1]   python2.6
  [2]   python2.7 *
  [3]   python3.2

     Luego de esto, hago un python-updater para que se recompile todo con la nueva versión de python y problema solucionado.

   Por esta razón me gusta utilizar gentoo/funtoo, generalmente siempre estoy poniendo en práctica todos los conceptos que he aprendido a lo largo de mi historia con GNU/Linux y el software libre

domingo, 4 de marzo de 2012

Migrando de Oracle a Postgres con ora2pg

     En estos días estaba ayudando a un colega y gran amigo a instalar en su ubuntu GNU/LInux, el migrador de bases de datos de oracle a postgres ora2pg, el tuvo unos problemas con la parte de las librerias de perl y las variables de entorno, cosa que yo ya había sufrido el año pasado para la compilación de tOra desde los fuentes con soporte para oracle (para debian GNU/Linux claro), luego que se solvento este detalle el me hiso llegar un documento y expresamente me dijo públicalo en tu blog y es por eso que lo pongo en este post:

Migrar de oracle a PostgreSQL

Realizado por: Eduardo Marques
              Email: elportu@gmail.com
Revisado y Corregido por: Abraham Brito
                                 Email: powerman5020@gmail.com

Paso 1: Descargar el Oracle Instant Client de la página de Oracle.
  • Descargar la versión basic, dev, JDBC Supplement, SQL*Plus, SDK de la siguiente página:
http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html?ssSourceSiteId=ocomen   (escoger  dependiendo de su sistema operativo)

Paso 2: Instalar paquete alíen
  • En los sistemas derivados de debian (como Ubuntu y mint) abrir una consola o terminal como root y ejecutar: 
# aptitude install alien
  • Nota en ubuntu pueden descargarlo directamente por el centro de software

Paso 3: Utilizamos alien para transformar los paquetes .rpm (de red hat y derivados) a .deb (binarios de debian)
  • Se abre una consola o terminal y como root ejecutamos el alien de la siguiente manera:
# alien -d nombre_depaquete.rpm
  • Instalar los paquetes generados por el alíen, nuevamente en una terminal como root ejecutar:
# dpkg -i nombre_paquete.deb
  • utilizando el editor de su preferencia creamos el archivo /etc/ld.so.conf.d/oracle.conf
  •  Y colocar la dirección donde se instalo oracle la cual puede ser la siguiente: “/usr/lib/oracle/11.2/client64/lib ” recuerde comprobar esta dirección puede cambiar si es otra versión de oracle o su sistema es 32bits
  • Instalar la librería libaio:
# aptitude install libaio1
  • Crear el siguiente archivo de configuración etc/ld.so.conf.d/oracle.conf y colocar la dirección donde se instalo oracle la cual puede ser la siguiente: “/usr/lib/oracle/11.2/client/lib/”
  • se ejecuta como root el comando ldconfig para crear los enlaces  simbólicos especificados en el paso anterior.
  • Pruebe la conexión con oracle usando el comando:
# sqlplus64 usuario/clave@ip/sid
  • Si los pasos anteriores fallan verifique esta pagina: 
https://help.ubuntu.com/community/Oracle%20Instant%20Client


Paso 4: Instalar el ora2pg
  • Ejecutamos como root los siguientes comandos en consola en distribuciones como ubuntu recordemos ejecutar sudo su:
# aptitude install cpanminus
# perl -MCPAN -e 'install DBI'
# cpan -i DBD::Oracle 


       En algunos casos la ejecución de la instruccion cpan da un error por no encontrar la librería de oracle o el oracle home, para solventar este error debemos configurar unas variables de entorno para el usuario root:
  • Usando el editor de texto de su preferencia se edita /root/.bashrc 
  • agregar al final del archivo
“export ORACLE_HOME=/usr/lib/oracle/11.2/client64”
“export LD_LIBRARY_PATH=$ORACLE_HOME/lib”

Nota: Recordemos que en este caso se esta utilizando el cliente de 64 bits si usan el 32 bits solo quiten el numero 64
  • guardar y ejecutar nuevamente la orden
#  cpan -i DBD::Oracle
Paso 5: Configurar el ora2pg (archivo ora2pg.conf)

  • Descargar el paquete desde el siguiente enlace:
  • http://sourceforge.net/projects/ora2pg/

  • Abrir una terminal y como root colocarse en la ruta del archivo descargado por ejemplo “/home/usuario/Descargas/”
  • ahora como root, desempaquetar y descomprimir el archivo descargado, en este caso:
# tar ora2pg-8.9.tar.bz2

  • Posicionarse dentro de la carpeta resultante:
# cd ora2pg-8.9/

  • Luego se compila el ora2pg de la siguiente manera
    # perl Makefile.PL
    # make && make install
    # aptitude install yum
    # perl -MCPAN -e 'install DBD::Pg'
    # aptitude install libdbd-pg-perl

Paso 6: configurar archivo de conexión ora2pg 
  • con el editor de su preferencia se edita el archivo /etc/ora2pg/ora2pg.conf  y agregar los parametros de su servidor y base de datos

Paso 7: Revisar manual de ora2pg en la página web oficial del proyecto:

    http://ora2pg.darold.net/config.html

Y listo ya tienen ora2pg, para realizar las migraciones de sus bases de datos de oracle a postgres, espero que les haya funcionado igual de bien que a nosotros.

Gracias Eduardo por dejarme compartir tu manual