apt-ftparchive - manual de referencia, opciones, ejemplos de comandos


NOMBRE

apt-ftparchive - Utilidad para generar archivos de índice

SINOPSIS

apt-ftparchive [-dsq] [--md5] [--delink] [--readonly] [--contents] [--arch architecture] [-o=config_string] [-c=config_file] {packages path [override-file [pathprefix]] | sources path [override-file [pathprefix]] | contents path | release path | generate config_file section... | clean config_file | {-v | --version} | {-h | --help}}

DESCRIPCIÓN

apt-ftparchive es la herramienta de línea de comandos que genera los archivos de índice que utiliza APT para acceder a una fuente de distribución. Los archivos de índice deben generarse en el sitio de origen según el contenido de ese sitio.

apt-ftparchive es un superconjunto del programa dpkg-scanpackages(1), que incorpora toda su funcionalidad a través del comando de paquetes. También contiene un generador de archivos de contenido, contenidos y un medio elaborado para escribir el proceso de generación de un archivo completo.

Internamente, apt-ftparchive puede hacer uso de bases de datos binarias para almacenar en caché el contenido de un archivo .deb y no depende de ningún programa externo aparte de gzip(1). Al realizar una generación completa, realiza automáticamente comprobaciones de cambios de archivos y crea los archivos de salida comprimidos deseados.

A menos que se proporcione la opción -h o --help, uno de los siguientes comandos debe estar presente.

packages

El comando packages genera un archivo de paquete a partir de un árbol de directorios. Toma el directorio dado y lo busca recursivamente en busca de archivos .deb, emitiendo un registro de paquete a stdout para cada uno. Este comando es aproximadamente equivalente a dpkg-scanpackages(1).

La opción --db se puede utilizar para especificar una base de datos de almacenamiento en caché binario.

sources

El comando de fuentes genera un archivo de índice de fuente a partir de un árbol de directorios. Toma el directorio dado y lo busca recursivamente en busca de archivos .dsc, emitiendo un registro fuente a stdout para cada uno. Este comando es aproximadamente equivalente a dpkg-scansources(1).

Si se especifica un archivo de anulación, se buscará un archivo de anulación de origen con una extensión de .src. La opción --source-override se puede usar para cambiar el archivo de reemplazo de fuente que se usará.

contents

El comando de contenido genera un archivo de contenido a partir de un árbol de directorios. Toma el directorio dado y lo busca recursivamente en busca de archivos .deb, y lee la lista de archivos de cada archivo. Luego ordena y escribe en la salida estándar la lista de archivos que coinciden con los paquetes. Los directorios no se escriben en la salida. Si varios paquetes poseen el mismo archivo, cada paquete se separa con una coma en la salida.

La opción --db se puede utilizar para especificar una base de datos de almacenamiento en caché binario.

release

El comando de liberación genera un archivo de liberación a partir de un árbol de directorios. Busca recursivamente en el directorio dado Paquetes, Fuentes, Contenidos, Componentes y archivos de iconos sin comprimir y comprimidos, así como archivos de Versión, Índice y md5sum.txt de forma predeterminada (APT::FTPArchive::Release::Default-Patterns). Se pueden agregar patrones de nombre de archivo adicionales enumerándolos en APT::FTPArchive::Release::Patterns. Luego escribe en la salida estándar un archivo de versión que contiene (de manera predeterminada) un resumen MD5, SHA1, SHA256 y SHA512 para cada archivo.

Los valores para los campos de metadatos adicionales en el archivo de versión se toman de las variables correspondientes en APT::FTPArchive::Release, p. APT::FTPArchive::Release::Origin. Los campos admitidos son Origen, Etiqueta, Conjunto, Versión, Nombre en clave, Fecha, No automático, Pero actualizaciones automáticas, Adquirir por hash, Válido hasta, Firmado por, Arquitecturas, Componentes y Descripción.

generate

El comando generar está diseñado para ejecutarse desde un script cron y crea índices de acuerdo con el archivo de configuración dado. El lenguaje de configuración proporciona un medio flexible para especificar qué archivos de índice se crean a partir de qué directorios, además de proporcionar un medio simple para mantener la configuración requerida.

clean

El comando clean ordena las bases de datos utilizadas por el archivo de configuración dado al eliminar cualquier registro que ya no sea necesario.

LA CONFIGURACIÓN GENERAR

El comando generar utiliza un archivo de configuración para describir los archivos que se van a generar. Sigue el formato de configuración típico de ISC como se ve en las herramientas de ISC como bind 8 y dhcpd. apt.conf(5) contiene una descripción de la sintaxis. Tenga en cuenta que la configuración generada se analiza en forma de sección, pero apt.conf(5) se analiza en forma de árbol. Esto solo afecta la forma en que se maneja la etiqueta de alcance.

La configuración de generación tiene cuatro secciones separadas, cada una de las cuales se describe a continuación.

Sección de directorio

La sección Dir define los directorios estándar necesarios para localizar los archivos necesarios durante el proceso de generación. A estos directorios se les anteponen ciertas rutas relativas definidas en secciones posteriores para producir una ruta completa y absoluta.

ArchiveDir

Especifica la raíz del archivo FTP; en una configuración estándar de Debian, este es el directorio que contiene los nodos ls-LR y dist.

OverrideDir

Especifica la ubicación de los archivos de anulación.

CacheDir

Especifica la ubicación de los archivos de caché.

FileListDir

Especifica la ubicación de los archivos de la lista de archivos, si se usa la configuración FileList a continuación.

Sección predeterminada

La sección Predeterminado especifica valores predeterminados y configuraciones que controlan el funcionamiento del generador. Otras secciones pueden anular estos valores predeterminados con una configuración por sección.

Packages::Compress

Establece los esquemas de compresión predeterminados que se utilizarán para los archivos de índice del paquete. Es una cadena que contiene una lista separada por espacios de al menos uno de los compresores configurados a través del ámbito de configuración APT::Compressor. El valor predeterminado para todos los esquemas de compresión es . gzip.

Packages::Extensions

Establece la lista predeterminada de extensiones de archivo que son archivos de paquete. Esto por defecto es .deb.

Sources::Compress

Esto es similar a Packages::Compress excepto que controla la compresión de los archivos Sources.

Sources::Extensions

Establece la lista predeterminada de extensiones de archivo que son archivos de origen. Esto por defecto es .dsc.

Contents::Compress

Esto es similar a Packages::Compress excepto que controla la compresión de los archivos de contenido.

Translation::Compress

Esto es similar a Packages::Compress excepto que controla la compresión del archivo maestro Translation-en.

DeLinkLimit

Especifica la cantidad de kilobytes para desvincular (y reemplazar con enlaces físicos) por ejecución. Esto se usa junto con la configuración de Enlaces externos por sección.

FileMode

Especifica el modo de todos los archivos de índice creados. El valor predeterminado es 0644. Todos los archivos de índice se configuran en este modo sin tener en cuenta el umask.

LongDescription

Especifica si las descripciones largas deben incluirse en el archivo de paquetes o dividirse en un archivo maestro Translation-en.

Sección TreeDefault

Establece valores predeterminados específicos para las secciones del árbol. Todas estas variables son variables de sustitución y tienen las cadenas $ (DIST), $ (SECCIÓN) y $ (ARCH) reemplazadas con sus respectivos valores.

MaxContentsChange

Establece el número de kilobytes de archivos de contenido que se generan cada día. Los archivos de contenido se rotan por turnos, de modo que durante varios días se reconstruirán todos.

ContentsAge

Controla el número de días que se permite verificar un archivo de contenido sin cambios. Si se supera este límite, se actualiza el mtime del archivo de contenido. Este caso puede ocurrir si el archivo del paquete se cambia de tal manera que no resulte en un nuevo archivo de contenido [anular la edición, por ejemplo]. Se permite una espera con la esperanza de que se instalen nuevos .debs, lo que requiere un nuevo archivo de todos modos. El valor predeterminado es 10, las unidades están en días.

Directory

Establece la parte superior del árbol de directorios .deb. El valor predeterminado es $ (DIST)/$ (SECCIÓN)/binario-$ (ARCH)/

SrcDirectory

Establece la parte superior del árbol de directorios del paquete fuente. El valor predeterminado es $ (DIST)/$ (SECCIÓN)/fuente/

Packages

Establece el archivo de paquetes de salida. El valor predeterminado es $ (DIST)/$ (SECCIÓN)/binario-$ (ARCH)/Paquetes

Sources

Establece el archivo de fuentes de salida. El valor predeterminado es $ (DIST)/$ (SECCIÓN)/fuente/Fuentes

Translation

Establece el archivo maestro Translation-en de salida con las descripciones largas si no deben incluirse en el archivo de paquetes. El valor predeterminado es $ (DIST)/$ (SECCIÓN)/i18n/Translation-en

InternalPrefix

Establece el prefijo de ruta que hace que un enlace simbólico se considere un enlace interno en lugar de un enlace externo. El valor predeterminado es $ (DIST)/$ (SECCIÓN)/

Contents

Establece el archivo de contenido de salida. El valor predeterminado es $ (DIST)/$ (SECCIÓN)/Contenido-$ (ARCH). Si esta configuración hace que varios archivos de paquetes se asignen a un solo archivo de contenido (como es el valor predeterminado), entonces apt-ftparchive integrará esos archivos de paquetes automáticamente.

Contents::Header

Establece el archivo de encabezado para anteponer a la salida de contenido.

BinCacheDB

Establece la base de datos de caché binaria que se usará para esta sección. Múltiples secciones pueden compartir la misma base de datos.

FileList

Especifica que en lugar de recorrer el árbol de directorios, apt-ftparchive debería leer la lista de archivos del archivo dado. Los nombres de archivos relativos tienen el prefijo del directorio de archivo.

SourceFileList

Especifica que en lugar de recorrer el árbol de directorios, apt-ftparchive debería leer la lista de archivos del archivo dado. Los nombres de archivos relativos tienen el prefijo del directorio de archivo. Esto se usa cuando se procesan índices de origen.

Sección de árbol

La sección Tree define un árbol de archivos Debian estándar que consta de un directorio base, luego varias secciones en ese directorio base y finalmente varias arquitecturas en cada sección. La ruta exacta utilizada se define mediante la variable de sustitución de directorio.

La sección Tree toma una etiqueta de alcance que establece la variable $ (DIST) y define la raíz del árbol (la ruta tiene el prefijo ArchiveDir). Por lo general, esta es una configuración como dists/bookworm.

Todas las configuraciones definidas en la sección TreeDefault se pueden usar en una sección Tree, así como tres nuevas variables.

Al procesar una sección de árbol, apt-ftparchive realiza una operación similar a:

for i in Sections do 
   for j in Architectures do
      Generate for DIST=scope SECTION=i ARCH=j
     
Sections

Esta es una lista de secciones separadas por espacios que aparecen debajo de la distribución; por lo general, esto es algo así como main contrib non-free non-free-firmware

Architectures

Esta es una lista separada por espacios de todas las arquitecturas que aparecen en la sección de búsqueda. La fuente de arquitectura especial se utiliza para indicar que este árbol tiene un archivo fuente. La arquitectura indica que los archivos específicos de la arquitectura, como los paquetes, no deben incluir información sobre la arquitectura de todos los paquetes en todos los archivos, ya que estarán disponibles en un archivo dedicado.

LongDescription

Especifica si las descripciones largas deben incluirse en el archivo de paquetes o dividirse en un archivo maestro Translation-en.

BinOverride

Establece el archivo de anulación binario. El archivo de anulación contiene información sobre la dirección de la sección, la prioridad y el mantenedor.

SrcOverride

Establece el archivo de anulación de origen. El archivo de anulación contiene información de la sección.

ExtraOverride

Establece el archivo de anulación adicional binario.

SrcExtraOverride

Establece el archivo de anulación adicional de origen.

Sección BinDirectory

La sección bindirectory define un árbol de directorio binario sin estructura especial. La etiqueta de ámbito especifica la ubicación del directorio binario y la configuración es similar a la sección del árbol sin variables de sustitución ni configuración de arquitectura de sección.

Packages

Establece la salida del archivo de paquetes.

Sources

Establece la salida del archivo de fuentes. Se requiere al menos uno de los Paquetes o Fuentes.

Contents

Establece la salida del archivo de contenido (opcional).

BinOverride

Establece el archivo de anulación binario.

SrcOverride

Establece el archivo de anulación de origen.

ExtraOverride

Establece el archivo de anulación adicional binario.

SrcExtraOverride

Establece el archivo de anulación adicional de origen.

BinCacheDB

Establece la base de datos de caché.

PathPrefix

Agrega una ruta a todas las rutas de salida.

FileList, SourceFileList

Especifica el archivo de lista de archivos.

EL ARCHIVO DE ANULACIÓN BINARIO

El archivo de anulación binario es totalmente compatible con dpkg-scanpackages(1). Contiene cuatro campos separados por espacios. El primer campo es el nombre del paquete, el segundo es la prioridad para forzar ese paquete, el tercero es la sección para forzar ese paquete y el campo final es el campo de permutación del mantenedor.

La forma general del campo de mantenimiento es:

old [// oldn]* => new

o simplemente,

new

El primer formulario permite especificar una lista separada por doble barra de direcciones de correo electrónico antiguas. Si se encuentra alguno de ellos, se sustituye el campo del mantenedor por nuevo. La segunda forma sustituye incondicionalmente el campo del mantenedor.

EL ARCHIVO DE ANULACIÓN DE LA FUENTE

El archivo de anulación de fuente es totalmente compatible con dpkg-scansources(1). Contiene dos campos separados por espacios. El primer campo es el nombre del paquete fuente, el segundo es la sección para asignarlo.

EL ARCHIVO DE ANULACIÓN EXTRA

El archivo de anulación adicional permite agregar o reemplazar cualquier etiqueta arbitraria en la salida. Tiene tres columnas, la primera es el paquete, la segunda es la etiqueta y el resto de la línea es el nuevo valor.

OPCIONES

Todas las opciones de la línea de comandos se pueden configurar usando el archivo de configuración, las descripciones indican la opción de configuración a configurar. Para las opciones booleanas, puede anular el archivo de configuración usando algo como -f-, --no-f, -f=no o varios otras variaciones.

--md5, --sha1, --sha256, --sha512

Generar la suma de comprobación dada. Estas opciones están activadas por defecto, cuando están desactivadas, los archivos de índice generados no tendrán los campos de suma de comprobación cuando sea posible. Elementos de configuración: APT::FTPArchive::Checksum y APT::FTPArchive::Índice::Checksum donde Índice pueden ser Paquetes, Fuentes o Versión y Checksum puede ser MD5, SHA1, SHA256 o SHA512.

-d, --db

Utilice una base de datos de almacenamiento en caché binario. Esto no tiene efecto en el comando generar. Elemento de configuración: APT::FTPArchive::DB.

-q, --quiet

Tranquilo; produce una salida adecuada para el registro, omitiendo los indicadores de progreso. Más qs producirán más silencio hasta un máximo de 2. También puede usar -q=# para establecer el nivel de silencio, anulando el archivo de configuración. Elemento de configuración: silencioso.

--delink

Realizar Desvinculación. Si se utiliza la configuración Enlaces externos, esta opción realmente permite desvincular los archivos. Está activado de forma predeterminada y se puede desactivar con --no-delink. Elemento de configuración: APT::FTPArchive::DeLinkAct.

--contents

Realizar la generación de contenidos. Cuando esta opción está configurada y los índices de paquetes se generan con una base de datos de caché, la lista de archivos también se extraerá y almacenará en la base de datos para su uso posterior. Cuando se usa el comando generar, esta opción también permite la creación de cualquier archivo de contenido. El valor predeterminado está activado. Elemento de configuración: APT::FTPArchive::Contents.

-s, --source-override

Seleccione el archivo de anulación de fuente para usar con el comando de fuentes. Elemento de configuración: APT::FTPArchive::SourceOverride.

--readonly

Haga que las bases de datos de almacenamiento en caché sean de solo lectura. Elemento de configuración: APT::FTPArchive::ReadOnlyDB.

-a, --arch

Acepte en los comandos de paquetes y contenido solo los archivos de paquete que coincidan con *_arch.deb o *_all.deb en lugar de todos los archivos de paquete en la ruta dada. Elemento de configuración: APT::FTPArchive::Architecture.

APT::FTPArchive::AlwaysStat

apt-ftparchive(1) almacena en caché tantos metadatos como sea posible en un archivo cachedb. Si los paquetes se vuelven a compilar y/o se vuelven a publicar con la misma versión, esto generará problemas ya que se utilizarán los metadatos almacenados en caché ahora obsoletos, como el tamaño y las sumas de verificación. Con esta opción habilitada, esto ya no sucederá, ya que se verificará si se modificó el archivo. Tenga en cuenta que esta opción está configurada en "falso" de forma predeterminada, ya que no se recomienda cargar varias versiones/compilaciones de un paquete con el mismo número de versión, por lo que, en teoría, nadie tendrá estos problemas y, por lo tanto, todas estas comprobaciones adicionales son inútiles.

APT::FTPArchive::LongDescription

Esta opción de configuración predeterminada es "verdadero" y solo debe establecerse en "falso" si el archivo generado con apt-ftparchive(1) también proporciona archivos de traducción. Tenga en cuenta que el archivo maestro Translation-en solo se puede crear en el comando generar.

-h, --help

Mostrar un breve resumen de uso.

-v, --version

Muestra la versión del programa.

-c, --config-file

Archivo de configuración; Especifique un archivo de configuración para usar. El programa leerá el archivo de configuración predeterminado y luego este archivo de configuración. Si es necesario establecer los ajustes de configuración antes de que se analicen los archivos de configuración predeterminados, especifique un archivo con la variable de entorno APT_CONFIG. Consulte apt.conf(5) para obtener información sobre la sintaxis.

-o, --option

Establecer una opción de configuración; Esto establecerá una opción de configuración arbitraria. La sintaxis es -o Foo::Bar=bar. -o y --option se pueden usar varias veces para establecer diferentes opciones.

EJEMPLOS

Para crear un archivo de paquetes comprimido para un directorio que contiene paquetes binarios (.deb):

apt-ftparchive packages directory | gzip > Packages.gz

VER TAMBIÉN

apt.conf(5)

DIAGNÓSTICO

apt-ftparchive devuelve cero en funcionamiento normal, decimal 100 en caso de error.

INSECTOS

Página de errores de APT[1]. Si desea informar un error en APT, consulte /usr/share/doc/debian/bug-reporting.txt o el comando reportbug(1).

AUTORES

Jason Gunthorpe

Equipo APT

NOTAS

1. Página de errores de APT: http://bugs.debian.org/src:apt