¿Cuál es la guía de empaquetado de Debian más simple?

150

Fui a la wiki de Ubuntu pero me confundí, había muchas maneras. Por favor, dígame una guía fácil para el empaquetado de Debian.

akshatj
fuente
3
¿Desea crear paquetes para su propio uso, en una computadora específica o para que otros lo usen?
andol
1
¿Qué idioma es el software que desea empaquetar?
Umang
44
Tengo el mismo problema. La mayoría de los tutoriales y guías comienzan con "get the upstream tarball". A partir de este momento estamos perdidos. Tenemos una cosa simple que queremos implementar, no hay tarball aguas arriba, no hay código fuente. es solo un archivo de guerra, algunos scripts y algunos archivos jar. ¿Qué es la bola de alquitrán aguas arriba todo alrededor, y alguien ha visto una guía NO se utiliza uno, que es amplio (por ejemplo, se ocupa de los problemas de los usuarios)
John Little
2
Iré por el que publiqué sobre StackOVerflow.
Si desea crear "paquetes virtuales" (agrupar dependencias), vale la pena echar un vistazo a equivs-build
Rolf

Respuestas:

103

Este es un buen CÓMO para crear un .debarchivo básico . Es adecuado para crear .debarchivos para uso personal, pero no lo suficientemente estrictos si desea que el paquete se incluya en Debian / Ubuntu, para eso debe leer la Guía del nuevo desarrollador de Debian y / o la Guía de empaquetado de Ubuntu (que creo que usted ' ya lo intenté).

Una buena herramienta para verificar el .debcumplimiento de su archivo es lintian(instalable desde los repositorios).

Hubo dos sesiones aquí en las salas de chat de Ask Ubuntu.

Los fundamentos del empaquetado en Ubuntu (Empaquetado: Parte 1)

Empaquetado de Ubuntu para PPA de Launchpad (Empaquetado: Parte 2)

dv3500ea
fuente
Esto compila muy bien lo que se necesita para comenzar con el empaquetado, pero en el CÓMO echo de menos la información para incluir el icono de la aplicación en el archivo deb (y no he encontrado nada sobre eso en otro lugar). ¿Alguna pista sobre cómo hacerlo?
nightcod3r
14

¿Con qué partes tienes problemas? Aunque complicado, la guía parecía bastante clara cuando la seguía.

Sumario rápido:

  • Fuente de extracción .tar.gz
  • correr dh_make
  • Editar archivos debian
  • Ejecute debuild
Nathan Osman
fuente
3
Lo que me confundió es, ¿es este proceso el mismo sin importar el idioma de origen o la estructura de directorios?
Seth
99
El quid es que no tenemos un .tar.gz. queremos empaquetar una aplicación que escribimos. Ninguna guía parece cubrir esto, todos comienzan con un "tarball aguas arriba" que no tenemos.
John Little
@JohnLittle esta respuesta puede ser de ayuda: askubuntu.com/a/27731/5
Nathan Osman el
1
¿Qué pasa con el empaque repetido a largo plazo? ¿Tengo que hacer siempre un proceso de envasado tan largo y complicado?
Kravemir
Si el usuario no tiene una clave GPG , debuildfallará con " debsign: error de gpg! Anulando .... ".
agc
10

Incluso puede usar dpkg-debpara crear paquetes simples.

Aquí hay un buen tutorial de Ubuntuforums .

Searock
fuente
5

La forma más fácil de empaquetar algo es usar checkinstall .

e8johan
fuente
44
checkinstall proporciona una forma rápida de compilar el paquete binario debin (.deb) a partir de un método de instalación de origen. Sin embargo, no proporciona un paquete debian adecuado (creado a partir de un paquete fuente debian).
João Pinto
OH hombre ... tuve que usar eso ANTES de compilar ... eso es como horas de compilación.
Piotr Kula
5

Publicado originalmente en StackOverFlow , esta guía es para software precompilado o interpretado:

La forma correcta de construir un paquete deb es usar, dpkg-buildpackagepero a veces es un poco complicado. En su lugar, puede usar dpkg -b <folder>y creará su paquete Debian.

Estos son los conceptos básicos para crear un paquete Debian dpkg -b <folder>con cualquier binario o con cualquier tipo de script que se ejecute automáticamente sin necesidad de compilación manual (Python, Bash, Pearl, Ruby):

  1. Cree los archivos y carpetas para recrear la siguiente estructura:

    ProgramName-Version/
    ProgramName-Version/DEBIAN
    ProgramName-Version/DEBIAN/control
    ProgramName-Version/usr/
    ProgramName-Version/usr/bin/
    ProgramName-Version/usr/bin/your_script
    

    Los scripts ubicados en /usr/bin/se llaman directamente desde la terminal, tenga en cuenta que no agregué una extensión al script. También puede notar que la estructura del paquete deb será la estructura del programa una vez que esté instalado. Entonces, si sigue esta lógica si su programa tiene un solo archivo, puede ubicarlo directamente debajo ProgramName-Version/usr/bin/your_script, pero si tiene varios archivos, debe ubicarlos debajo ProgramName-Version/usr/share/ProgramName/all your filesy colocar solo un archivo debajo /usr/bin/para llamar a sus scripts desde/usr/share/ProgramName/

  2. Cambie todos los permisos de carpeta a root:

     chown root:root -R /path/to/ProgramName-Version  
    
  3. Cambia los permisos del script:

     chmod 0755 /path/to/the/script
    
  4. Finalmente, puede ejecutar: ¡ dpkg -b /path/to/the/ProgramName-Versiony se creará su paquete deb! (También puede agregar los scripts post / pre inst y todo lo que desee, funciona como un paquete Debian normal)

Aquí hay un ejemplo del controlarchivo. Solo necesita copiarlo / pegarlo en un archivo vacío llamado "control" y ponerlo en la carpeta DEBIAN.

Package: ProgramName
Version: VERSION
Architecture: all
Maintainer: YOUR NAME <EMAIL>
Depends: python2.7, etc , etc,
Installed-Size: in_kb
Homepage: http://foo.com
Description: Here you can put a one line description.This is the short Description.
 Here you put the long description, indented by 1 space.
karel
fuente
3

No, la guía de empaque más simple y clara en este mundo es

Empaquetado de aplicaciones Java para Ubuntu y otros Debian

Hace unos días, para mi primera aplicación, creé el paquete DEB siguiendo este tutorial. Muy claro y mi aplicación empaquetada con éxito. Sí, al menos es lo más simple para mí.

Puede compararlo con la Guía de empaquetado de Debian.

Ade Malsasa Akbar
fuente
3
"Simple" no significa "completo". Hay muchas políticas que un tutorial básico de empaquetado de .deb no cubrirá para diferentes tipos de programas y, por lo tanto, el empaquetado no es tan fácil como un simple "tutorial simple".
Thomas Ward
Definitivamente simple. Comencé y pude crear mi primer paquete de Debian en cuestión de minutos. Todavía hay muchos detalles con los que lidiar (mensajes de mala calidad del paquete de lintian) pero un excelente punto de partida.
atmelino