Suscribirse al Feed
27Oct

Crear paquete DEB para programas en Python

He leído bastante información acerca de cómo debianizar paquetes de software, pero en la mayoría de los casos se parte de el hecho de tener un programa en C/C++, en donde es necesario preocuparse por las tareas de compilación.

Y puesto que no he visto ningún tutorial en español, he decidido escribir algo al respecto de la manera más clara posible. ¡Manos a la obra!

0. Preparativos

Lo único que necesitas son dos herramientas: dpkg-dev y dh-make, las cuales puedes instalar ejecutando este comando:

apt-get install dpkg-dev dh-make

Ten en cuenta que en éste ejemplo vamos a empaquetar un programa simple llamado "pngcrushgtk", y que debes cambiar todo lo que aparece con ése nombre con el nombre de tu programa.

1. Creando un espacio de trabajo

Puesto que mientras estemos realizando el empaquetado se van a crear varios archivos, lo ideal es tener un espacio de trabajo (una carpeta) totalmente vacío al comenzar. Así que crearemos una carpeta llamada sandbox, en donde realizaremos todo cómodamente:

$ mkdir sandbox
$ cd sandbox

Dentro, debemos crear una carpeta cuyo nombre sea del tipo: nombreprograma-version:

$ mkdir pngcrushgtk-0.2

En la cual debemos copiar una versión empaquetada de nuestro programa dentro de un .tar.gz. Si aún no lo tienes, puedes hacer lo siguiente:

$ cd /ruta/de/tu/programa
$ tar cfzv pngcrushgtk-0.2.tar.gz *
$ cp pngcrushgtk-0.2.tar.gz /ruta/sandbox/pngcrushgtk-0.2/
$ cd /ruta/sandbox/pngcrushgtk-0.2/
Nota: recuerda que debes poner el nombre de tu programa en vez de "pngcrushgtk".

2. Debianizando nuestro paquete

Para ello utilizaremos el comando dh_make de la siguiente forma:

$ dh_make -e cristian@elhacker.net -f pngcrushgtk-0.2.tar.gz -c GPL

Type of package: single binary, multiple binary, library, kernel module or cdbs?
[s/m/l/k/b] sMaintainer name : cristian
Email-Address : cristian@elhacker.net
Date : Sat, 18 Oct 2008 11:15:08 -0500
Package Name : pngcrushgtk
Version : 0.2
License : gpl
Using dpatch : no
Type of Package : Single
Hit <enter> to confirm:
Currently there is no top level Makefile. This may require additional tuning.
Done. Please edit the files in the debian/ subdirectory now. You should also
check that the pngcrushgtk Makefiles install into $DESTDIR and not in / .

Nos preguntará qué tipo de paquete estamos creando, y seleccionamos "s" (simple). Permíteme explicarte cada parámetro:

  • -e cristian@elhacker.net, indicamos el correo electrónico del autor del programa
  • -f pngcrushgtk.tar-0.2.gz, indicamos el paquete comprimido que contiene nuestro programa
  • -c GPL, indicamos el tipo de licencia de nuestro programa

Luego de ejecutar el comando se habrá creado una carpeta llamada debian dentro de pngcrushgtk-0.2; y un archivo llamado pngcrushgtk_0.2.orig.tar.gz dentro de la carpeta sandbox, el cual debes eliminar.

Continúa leyendo en la siguiente página, en donde comenzamos con la configuración del paquete...

1 2 3 4 5 6
04Oct

Threads en Python y PyGtk - evitar que se congelen las aplicaciones

Uno de los típicos problemas que se tienen al programar en PyGtk es que si necestamos ejecutar un comando externo, nuestra aplicación se bloquea hasta que el proceso termine. La solución a esto es usar threads, pero NO "de la manera normal".

La cosa es que, cuando estamos desarrollando software en PyGtk, usar threads de la forma convencional tiene problemas: algunas veces, los widgets como botones que ejecutan threads no trabajan adecuadamente, o simplemente la aplicación se congela como si no estuvieramos usando hilos :(

La solución es usar los métodos gtk.gdk.threads_init(), gtk.gdk.threads_enter() y gtk.gdk.threads_leave(). Vamos con un ejemplo, y luego de ello paso a explicar las particualiaridades del programa: Leer el resto de la entrada...

04Ago

IDEs para Python - Los dos mejores en mi opinión

Recientemente ando aprendiendo algo de Python, y por supuesto me he lanzado a la búsqueda de un bonito IDE para trabajar. Después de muchas vueltas probando diferentes opciones, al fin he seleccionado mis dos finalistas.

PyDev

pydev

Es sin duda el mejor de todos. Se trata de un plugin para Eclipse que tiene todo lo que pudiéramos necesitar de un IDE:

  • Resaltado de código
  • Sangrado automática
  • Completado automático
  • Ejecución de programas
  • Depurador de soluciones
  • Administrador de proyectos

OpenKomodo

komodo

Es muy bueno sin duda, y nace como resultado de la liberación de parte del código del editor de Komodo, pero es solo un editor, por lo que el proceso de ejecución y depuración de aplicaciones lo tenemos que hacer manualmente o usando otras herramientas. Aún así­ posee:

  • Resaltado de código
  • Sangrado automática
  • Completado automático
  • Administrador de proyectos
  • Y utilidades para el código (des/comentar bloques de código, uso de bookmarks, etc.)

Otros IDEs

Existen por supuesto una gran variedad de alternativas muy buenas, cada una con sus pros y contras. Entre las que podemos encontrar (todos instalables usando apt-get en sistemas basados en Debian):

Enlaces interesantes...

29Jul

KDE 4.1 disponible

kde4

Hace apenas unas horas me entero en menéame del lanzamiento de KDE 4.1 (la segunda de la serie KDE4), con algunas novedades como el regreso de la suite KDE-PIM, mejoras en Plasma y muchas aplicaciones nueva. Los que desean actualizar desde la versión KDE 4.1 Beta 2, pueden seguir ésta pequeña guía que ha escrito José en UbuntuLife.

Enlaces...

21Jul

Script simple para crear backups

Uno de los aspectos más descuidados por muchos usuarios de computador, es el de realizar backups periódicamente de sus archivos. Aquí vamos a ver un pequeño tip para crear backups de una manera sencilla y rápida. Lo único que necesitaremos es un programa en Shell, tan solo de dos líneas:


#!/bin/sh
tar czvf $1.$(date +%Y%m%d-%H%M%S).tgz $1
exit $?

A este script le podemos pasar como parámetro un nombre de archivo o direcotorio, y éste crea un archivo comprimido con la fecha actual embebida en el nombre. Por ejemplo, si tenemos un directorio llamado src y deseas hacerle un bakcup, puedes invocar el script de esta manera:

$ ./backup.sh src
src/
src/EjemploGUI.java
src/Suma.java
src/EjemploGUI.class
src/Hola4.java
src/Tarea.java
src/EjemploGUI2.java
src/Hola2.java
src/EjemploGUI2.class
src/Hola3.java
src/EjemploGUI2$MiPanel.class
src/Hola.java
src/Humano.java
$ ls
bin src src.20080719-181907.tgz

Tal vez ponga algo más avanzado para hacer backups, pero de momento esto resultará muy útil para muchos. Además que es bastante sencillo!

Nota: para darle permisos de ejecución a nuestro archivo es necesario ejecutar el comando: chmod a+x bakcup.sh, suponiendo que nuestro script se llama bakcup.sh.

Descargar archivo backup.sh

18Jul

PyQT Desarrollando Aplicaciones de Escritorio

portada libro pyqt

Me entero a través de UbuntuLife de PyQt, Desarrollando Aplicaciones de Escritorio un eBook escrito por Daniel M. Maldonado El codigo K, se trata de una pequeña guía que nos va a permitir entender como integrar de manera muy simple el lenguaje de programación Python con las librerías gráficas Qt (las que usa KDE), el mismo se encuentra bajo licencia Creative Commons. El documento es bastante simple y puedes descargarlo. Además está disponible el código fuente del ejemplo.

Anuncio del libro

© 2007 - 2008 Dezinerfolio. Todos los derechos reservados.
Powered by Wordpress. Entradas RSS