Saltar al contenido

¿Cómo crear un archivo DEB manualmente?

Después de consultar con expertos en el tema, programadores de deferentes ramas y maestros dimos con la solución al dilema y la dejamos plasmada en este post.

Solución:

Hacer un paquete fuente

Mi recomendación es hacer un paquete fuente. Instale build-essential, debhelper, dh-make. Cambie al directorio donde se encuentran los archivos que desea instalar (el nombre del directorio debe tener la forma $PACKAGE-$VERSIONp.ej myapp-4.2-1 para su primer intento de empaquetar Myapp V4.2), y ejecute dh_make --createorig. Responde a las preguntas. Debhelper creará la infraestructura básica necesaria para construir un paquete generando archivos en un subdirectorio llamado debian, tanto algunos archivos obligatorios como plantillas para archivos opcionales. Es posible que deba modificar algunos de estos archivos:

  • Editar debian/rules para construir lo que necesita construir e instalar los archivos en el lugar correcto. Si solo necesita copiar algunos archivos y no compilar cosas, simplemente edite el archivo debian/install para especificar qué archivos deben instalarse y dónde.
  • Editar debian/copyright para agregar información de licencia sobre su paquete e información sobre dónde obtener la última versión (si corresponde).
  • Editar debian/changelog para eliminar la referencia a un ITP (eso solo es relevante si está trabajando para el proyecto Debian). Rebautizar debian/postinst.ex para debian/postinst y agregue sus comandos posteriores a la instalación allí. Si luego actualiza su paquete, ejecute debchange -i para agregar una entrada de registro de cambios o editar el archivo en Emacs (con dpkg-dev-el instalado).

Correr dpkg-buildpackage -rfakeroot -us -uc para construir el .deb paquete (quitar -us -uc si quieres firmar el paquete con tu PGP key).

Hacer un paquete binario directamente

Si decide crear un paquete binario directamente sin compilarlo a partir de un paquete fuente, lo cual no es realmente más fácil porque no hay tantas herramientas para facilitar el proceso, necesitará cierta familiaridad básica con el formato de los paquetes deb. Se describe en el Manual de políticas de Debian, en particular en el cap. 3 (formato de paquetes binarios), cap. 5 (archivos de control), cap. 6 (scripts de instalación) y el apéndice B (manipulación de paquetes binarios).

Te aseguras de que tu paquete instale los archivos esperados /usr/share/doc/copyright (que contiene la licencia del contenido del paquete, así como dónde encontrar la última versión del paquete) y /usr/share/doc/changelog.Debian.gz (que contiene el registro de cambios del paquete deb). No los necesita si solo va a usar el paquete internamente, pero es mejor tenerlos.

En Debian y derivados

Si tiene las herramientas de Debian disponibles, use dpkg-deb para construir el paquete. En el directorio que contiene los datos para instalar, agregue un directorio llamado DEBIAN en el nivel superior, que contiene los archivos de control y los scripts de mantenimiento.

$ ls mypackage-42
DEBIAN etc usr var
$ dpkg-deb -b mypackage-42

El camino difícil

Si no tiene las herramientas de Debian, cree un archivo de los archivos que desea empaquetar llamado data.tar.gzun archivo separado de los archivos de control llamado control.tar.gz (sin subdirectorios), y un archivo de texto llamado debian-binary y que contiene el texto 2.0.

cd mypackage-42
tar czf ../data.tar.gz [a-z]*
cd DEBIAN
tar czf ../../control.tar.gz *
cd ../..
echo 2.0 > debian-binary
ar r mypackage-42.deb debian-binary control.tar.gz data.tar.gz

Necesita al menos un archivo de control con los campos Package, Maintainer, Priority, Architecture, Installed-Size, Versiony cualquier declaración de dependencia necesaria.

El script que se ejecutará después de la instalación se llama postinst. Asegúrese de hacerlo ejecutable. va al lado control.

Convertir un paquete binario de un formato diferente

Si ya tiene un paquete binario de otra distribución, puede usar alien para convertirlo.

En primer lugar, debe crear una carpeta de compilación y un archivo de sus archivos: tar czvf data.tar.gz files

Luego, en la carpeta de compilación, debe crear un archivo de control con algunas informaciones deseadas:

 Package: xxxxxx
 Version: 0.0.1
 Section: user/hidden 
 Priority: optional
 Architecture: armel
 Installed-Size: `du -ks usr|cut -f 1`
 Maintainer: Your Name <[email protected]>
 Description: This is optional, but creates warnings if left out

Luego, puede agregar scripts de shell preinst, postint, prerm y postrm de forma independiente para controlar el comportamiento previo y posterior a la instalación y previo y posterior a la eliminación del archivo .deb y luego puede crear el archivo de control con tar: tar czvf control.tar.gz control preinst postinst prerm postrm

Entonces necesitas un archivo debian-binary: echo 2.0 > debian-binary. En su carpeta de compilación debería tener ahora estos archivos: debian-binarycontrol.tar.gz y data.tar.gz.

Finalmente necesitas ar paquete para crear el archivo .deb: ar -r xxx.deb debian-binary control.tar.gz data.tar.gz

Hago muchos paquetes, y hacer uno completo no es un asunto baladí. En una nota positiva, los archivos y scripts requieren mucho menos trabajo. Puede crear un paquete de este tipo de forma muy sencilla con una herramienta conocida como debreate.

Debreate es una GUI realmente simple, solo para crear paquetes DEB simples. Simplemente puede especificar qué archivos, a dónde van y si/qué debe ejecutarse en la post/preinstalación/desinstalación. Solía ​​​​hacer todos mis paquetes de la manera estándar, pero después de comenzar a usar esta herramienta, solo regresaré cuando sea necesario.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *