gentoo linux, java, software libre y otras hierbas
oct, 27 2008 - 11:49 am

Crear paquete DEB para programas en Python

Editando el archivo: rules

El archivo rules es el que se encarga de instalar el programa en si, es decir, copiar los archivos a sus respectivas carpetas. Lo primero que haremos será editar la sección build-stamp; la vamos a dejar así:

build-stamp: configure-stamp
	dh_testdir
	touch build-stamp

Luego la sección clean así:

clean:
	dh_testdir
	dh_testroot
	rm -f build-stamp configure-stamp
	dh_clean

Y terminamos con la sección install, en donde indicamos cómo se instalará nuestra aplicación. Pero antes debes tener en cuenta que, cuando se instale el programa, el instalador deberá crear algunas carpetas en el sistema, en nuestro caso la carpeta /usr/share/pngcrushgtk/ y que allí pondrá los archivos de nuestro programa. Para ello debemos usar la variable ${CURDIR}:

  • ${CURDIR} es equivalente a /ruta/sandbox/pngcrushgtk-0.2/, por tanto…
  • ${CURDIR}/debian/, es una carpeta que ya existe, mientras que…
  • ${CURDIR}/debian/pngcrushgtk/, es una carpeta que aún NO existe, pero que será creada, y que representa a root (/). Por ejemplo, al poner esto:
    cp *.py ${CURDIR}/debian/pngcrushgtk/usr/share/pngcrushgtk/
    Estamos diciendo que, en el momento de la instalación, se copiarán todos los archivos con extensión .py al directorio /usr/share/pngcrushgtk/ del sistema operativo.

La sección install tendría entonces la siguiente apariencia:

install: build
	dh_testdir
	dh_testroot
	dh_clean -k
	dh_installdirs
	mkdir -p ${CURDIR}/debian/pngcrushgtk
	mkdir -p ${CURDIR}/debian/pngcrushgtk/usr/share/pngcrushgtk
	cp pngcrushgtk ${CURDIR}/debian/pngcrushgtk/usr/bin/
	chmod a+x ${CURDIR}/debian/pngcrushgtk/usr/bin/pngcrushgtk
	cp *.py ${CURDIR}/debian/pngcrushgtk/usr/share/pngcrushgtk/
	cp *.png ${CURDIR}/debian/pngcrushgtk/usr/share/pngcrushgtk/
	cp pngcrushgtk.desktop ${CURDIR}/debian/pngcrushgtk/usr/share/applications/
Páginas de esta entrada: 1 2 3 4 5 6

6 Comentarios | deja el tuyo

Un enlace entrante

5 Comentarios en “Crear paquete DEB para programas en Python”

  1. Cristobal dice:

    Buen tutorial tio, me lo apunto para mañana.
    Una cosa, hay algo que no me cuadra y es utililizar dpkg-buildpackage como superusuario, te aconsejo que lo hagas sin permisos de superusuario. También puedes utilizar en vez de ese comando el comando debuild -us -uc, en este caso primero lo probaré yo mañana si puedo y te cuento ;-)

  2. Cristian dice:

    OK… gracias por la recomendación :P

    Un saludo!

  3. Paco dice:

    Hola, tengo muchas dudas, he seguido paso a paso tu curso, solo tengo una duda, el archivo dirs no lo encontré y lo cree, pero, aparte de eso, al final, cuando intento instalar, me dice que el paquete está instalado, pero no se copió el programa que hice, solo el copyright y ya.
    ¿Alguna recomendación?

  4. Paco dice:

    Olvidé decir que trabajo bajo Ubuntu 10.04. Tengo dos semanas usando esta distro ya que siempre use Windows. Ayuda Porfavor.

  5. Cuando ejecuto dh-make la primera me aparece:

    Package name “AguBrowse” is not in a valid format.
    Debian policy manual states:
    “Package names must only consist of lower case letters, digits (0-9),
    plus (+) or minus (-) signs, and periods (.)”

¡Déjanos tu comentario!