dpkg y apt para que crean que un paquete está instalado. Esto permite satisfacer las dependencias de un paquete cuando se instaló el software correspondiente fuera del alcance del sistema de paquetes. Este método funciona, pero debería evitarlo siempre que sea posible ya que no hay garantías que el software instalado manualmente se comporta exactamente de la misma forma que el paquete correspondiente y que otros paquetes que dependan de él funcionarán correctamente.
equivs-control y equivs-build (en el paquete equivs). Si ejecuta equivs-control archivo creará un archivo de cabecera de un paquete Debian que debe editar para que contenga el nombre esperado del paquete, su número de versión, el nombre de su encargado, sus dependencias y su descripción. Puede eliminar todos los demás campos sin un valor predeterminado ya que son opcionales. Los campos Copyright, Changelog, Readme y Extra-Files no son campos estándar en los paquetes Debian, sólo tienen sentido dentro del alcance de equivs-build y no serán mantenidos en las cabeceras del paquete generado.
Ejemplo 15.2. Archivo de cabecera del paquete falso libxml-libxml-perl
Section: perl Priority: optional Standards-Version: 3.9.6 Package: libxml-libxml-perl Version: 2.0116-1 Maintainer: Raphael Hertzog <hertzog@debian.org> Depends: libxml2 (>= 2.7.4) Architecture: all Description: Fake package - module manually installed in site_perl This is a fake package to let the packaging system believe that this Debian package is installed. . In fact, the package is not installed since a newer version of the module has been manually compiled & installed in the site_perl directory.
equivs-build archivo. Voilà: se creó el paquete en el directorio actual y lo puede utilizar como cualquier otro paquete Debian.
falcot-data-1.0 que contendrá el paquete fuente objetivo. El paquete, lógicamente, se llamará falcot-data y tendrá el número de versión 1.0. El administrador luego ubicará los archivos de documentos en un subdirectorio data. Luego ejecutará dh_make (del paquete dh-make) para agregar los archivos necesarios para el proceso de generación del paquete, que serán almacenados en un subdirectorio debian:
$cd falcot-data-1.0$dh_make --nativeType of package: (single, indep, library, python) [s/i/l/p]?iMaintainer Name : Raphael Hertzog Email-Address : hertzog@debian.org Date : Fri, 04 Sep 2015 12:09:39 -0400 Package Name : falcot-data Version : 1.0 License : gpl3 Package Type : indep Are the details correct? [Y/n/q] Currently there is not top level Makefile. This may require additional tuning Done. Please edit the files in the debian/ subdirectory now. $
Architecture: all). single acts as a counterpart, and leads to a single binary package that is dependent on the target architecture (Architecture: any). In this case, the former choice is more relevant since the package only contains documents and no binary programs, so it can be used similarly on computers of all architectures.
dh_make crea un subdirectorio debian con muchos archivos. Algunos son necesarios, en particular rules, control, changelog y copyright. Los archivos con extensión .ex son archivos de ejemplo que puede utilizar modificándolos (y eliminando la extensión) cuando necesite. Si no los necesita, le recomendamos eliminarlos. Debe mantener el archivo compat ya que es necesario para que funcione correctamente la suite de programas debhelper (todos los que comienzan con el prefijo dh_) que son utilizados en varias etapas del proceso de creación del paquete.
copyright file must contain information about the authors of the documents included in the package, and the related license. In our case, these are internal documents and their use is restricted to within the Falcot Corp company. The default changelog file is generally appropriate; replacing the “Initial release” with a more verbose explanation and changing the distribution from unstable to internal is enough. The control file was also updated: the Section field has been changed to misc and the Homepage, Vcs-Git and Vcs-Browser fields were removed. The Depends fields was completed with firefox-esr | www-browser so as to ensure the availability of a web browser able to display the documents in the package.
Ejemplo 15.3. El archivo control
Source: falcot-data
Section: misc
Priority: optional
Maintainer: Raphael Hertzog <hertzog@debian.org>
Build-Depends: debhelper (>= 10)
Standards-Version: 4.1.2
Package: falcot-data
Architecture: all
Depends: firefox-esr | www-browser, ${misc:Depends}
Description: Internal Falcot Corp Documentation
This package provides several documents describing the internal
structure at Falcot Corp. This includes:
- organization diagram
- contacts for each department.
.
These documents MUST NOT leave the company.
Their use is INTERNAL ONLY.
Ejemplo 15.4. El archivo changelog
falcot-data (1.0) internal; urgency=low
* Entrega inicial.
* Empecemos con unos pocos documentos:
- estructura interna de la compañía;
- contactos para cada departamento.
-- Raphael Hertzog <hertzog@debian.org> Fri, 04 Sep 2015 12:09:39 -0400Ejemplo 15.5. El archivo copyright
Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Name: falcot-data Files: * Copyright: 2004-2015 Falcot Corp License: All rights reserved.
rules generalmente contiene un conjunto de reglas utilizadas para configurar, compilar e instalar el software en un subdirectorio dedicado (cuyo nombre coincide con el del paquete binario generado). Luego se incluye el contenido de este subdirectorio en el compendio del paquete Debian como si fuera la raíz del sistema de archivos. En nuestro caso, se instalarán los archivos en el subdirectorio debian/falcot-data/usr/share/falcot-data/ para que el paquete generado despliegue los archivos en /usr/share/falcot-data/. Se utiliza el archivo rules como si fuera un archivo Makefile, con unos pocos objetivos estándar (incluyendo clean y binary, utilizados para limpiar el directorio fuente y generar el paquete binario respectivamente).
debhelper. Tal es el caso de los archivos generados por dh_make. Para instalar nuestros archivos simplemente configuraríamos el comportamiento de dh_install creando el siguiente archivo debian/falcot-data.install:
data/* usr/share/falcot-data/
falcot-data.desktop file and get it installed in /usr/share/applications by adding a second line to debian/falcot-data.install.
Ejemplo 15.6. El archivo falcot-data.desktop
[Desktop Entry] Name=Documentaciónn Interna Falcot Corp Comment=Inicia un navegador para leer la documentación Exec=x-www-browser /usr/share/falcot-data/index.html Terminal=false Type=Application Categories=Documentation;
debian/falcot-data.install actualizado se parece a este:
data/* usr/share/falcot-data/ falcot-data.desktop usr/share/applications/
dpkg-buildpackage -us -uc desde el directorio falcot-data-1.0.