El sistema de gestión de paquetes de Ubuntu, que debe a su hermano mayor Debian, hace que sea tan sencillo como mantener el sistema actualizado. Ya sea a través de programas de la interfaz gráfica de usuario o utilizando “apt-get“, me impresiona constantemente. Pero todavía hay casos en los que no puedes conseguir un programa en particular en formato DEB, o tal vez quieres distribuir tu propio software para otros usuarios de Debian y Ubuntu. Armar un paquete DEB a mano es una tarea desalentadora… afortunadamente, Debreate facilita el empaquetado de software para una fácil instalación.

Nota: Esta es la segunda parte de la serie de creación de paquetes deb. Puede leer la primera parte: Los fundamentos de la gestión de paquetes de Debian: Paquetes DEB [Linux 101] aquí.

Instalación y puesta en marcha de Debreate

Lo primero que tenemos que hacer es instalar Debreate. Puede descargar el paquete desde Sourceforge aquí, y luego instalarlo con el gestor de paquetes de su elección, o con el siguiente comando:

sudodpkg-i debreate_0.7.7_all.deb

A continuación, podemos lanzar Debreate desde KRunner ejecutando “debreate“, o haciendo clic en el elemento de la sección “Desarrollo” del menú de la aplicación.

Inicie el programa, y obtendrá la siguiente pantalla (de primera ejecución), como se muestra abajo a la izquierda, seguida de una pantalla de información, abajo a la derecha.

debreate-firstrun

debreate-info

Información de control

Haciendo clic en la flecha de la esquina superior nos lleva a una pantalla llamada “Control”. Aquí es donde rellenaremos los datos que acabarán en la parte “control.tar.gz ” del paquete. Tendrás que rellenar los siguientes campos que se muestran a continuación:

  • Paquete: El nombre del paquete debe estar formado únicamente por letras minúsculas, números, símbolos “+”, “-” o “.”.
  • Versión: Un número de versión: estoy usando 0.0.1 para esta versión inicial.
  • Mantenedor: El nombre de la persona que empaqueta esta aplicación (ese soy yo).
  • Correo electrónico: Su (mi) dirección de correo electrónico.
  • Arquitectura: Si se trata de un paquete binario (es decir, no un paquete de código fuente que será compilado), probablemente será una de: “i386” (para procesadores de 32 bits, como los Pentium o Core), “amd64” (procesadores de 64 bits, como los AMD Phenom o los nuevos Intel Core i3/5/7), o “all”, lo que significa que no depende del procesador. Como este es un script de shell que se ejecutará en cualquier versión de Ubuntu, estoy seleccionando “all”.
  • Sección: Esta es la categoría donde el paquete residirá dentro de un repositorio más grande. Dado que nuestro script nos permite producir fácilmente documentos a partir de marcas de texto, he seleccionado la sección “Texto” (el propio Pandoc también está en la sección “Texto”).
  • Prioridad: Según las FAQ de Debian/GNU, esto debería ser “Opcional” (y de nuevo, el propio Pandoc también es “Opcional”).
  • Descripción breve: Esta descripción del paquete se mostrará, por ejemplo, en una vista de lista en un gestor de software como el Centro de Software o Muon.
  • Descripción larga: Esta descripción más larga se mostrará en una vista detallada, como cuando se selecciona un paquete en un gestor de software, o utilizando apt-cache show [paquete]”.

debreate-control

Pulse la flecha de la derecha en la parte superior derecha para pasar a la siguiente pantalla.

Las dependencias

Lo siguiente que necesitaremos preparar es una lista de cualquier otro paquete que vaya a utilizar este programa. Obviamente, necesitaremos que “Pandoc” esté instalado, ya que el script llama a ese programa, y como estamos incluyendo una GUI, necesitaremos asegurarnos de que “Zenity” también esté instalado. Tendremos que introducir cada uno de ellos en la pantalla de Dependencias (también podríamos incluir un número de versión, pero para este script, cualquier versión de Pandoc y Zenity que tenga la distribución debería ser suficiente), y pulsar el botón “Añadir” para añadirlo a la lista.

debreate-depends

Ahora, ¡empacemos algunos archivos!

Los archivos

Lo primero que hay que hacer es reunir todos los archivos que vas a incluir, y organizarlos en la estructura de carpetas descrita anteriormente. Para este artículo, voy a empaquetar el pandoc-pub.

sh

que creé en un artículo anterior. La pantalla de Archivos permite seleccionar los archivos de uno en uno, e indicar en qué carpeta deben ser instalados, como se muestra a continuación. Tengo tres archivos que me gustaría incluir:
  • El script en sí… Como este programa es un script de shell, es autocontenido. Tendré que ponerlo en “/usr/bin” según FHS.
  • A continuación, voy a incluir un breve archivo README con instrucciones de uso. Esto irá en “/usr/share/doc”.
  • Por último, voy a incluir un icono. Lo colocaré en “/usr/share/icons”.

debreate-files

Scripts, Changelog, Copyright

La siguiente pantalla le permitirá especificar los scripts “preinst”, “postinst”, “prerm” y/o “postrm” descritos en el artículo anterior sobre los fundamentos de DEB. Le seguirán otros tres: Changelog (que permite describir los cambios desde la última versión), Copyright (una declaración sobre cómo se puede utilizar el software), y Menu Launcher (que automatizará la creación de un elemento en el menú principal del escritorio). Para el propósito de este paquete de prueba, no estoy usando ninguno de estos.

debreate-scripts

Constrúyelo!

La pantalla final le dará algunas “Opciones Extra” que podemos ignorar con seguridad… vamos a construir. Haz clic en el gran botón verde.

debreate-build

Mi paquete tenía algunas advertencias (que en la jerga de los desarrolladores son diferentes a los errores, que son “show-stopers” por así decirlo) como una declaración de Copyright que faltaba, una página man que faltaba, etc… como este paquete es sólo para mi propio uso, esto está bien. Pero está construido! Puedes instalarlo con el siguiente comando estándar “dpkg”:

sudodpkg-i pandoc-pub_0.0.1_all.deb

Pero falla… ¿por qué? Porque tiene dependencias de Zenity y Pandoc (que acabo de quitar, para probar esta función). Haciendo doble clic sobre el paquete en un gestor de archivos, GDebi se encarga de instalar las dependencias por nosotros, como se muestra a continuación:

debreate-gdebi-install

Una vez instalado, ahora puedo distribuir esto a mis amigos (que son, en general, mucho mejores programadores que yo). Así que busca algunos de tus scripts o programas más útiles, y ponte a empaquetar. Distribuir software útil a los demás es lo que hace que la comunidad del software libre sea tan grande.