NOMBRE¶
apt-ftparchive - Herramienta para generar ficheros 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 la línea de
órdenes que genera los ficheros de índice que APT utiliza para
acceder a la fuente de la distribución. Los ficheros de índice
se deberían generar en el sitio de origen basado en el contenido de
ese sitio.
apt-ftparchive es un superconjunto del programa
dpkg-scanpackages(1), e incorpora su funcionalidad al completo
mediante la orden packages. También contiene un generador de
contenidos de fichero, contents, y un modo elaborado para realizar un
«script» para el proceso de generación de un archivo
completo.
Internamente, apt-ftparchive puede hacer uso de bases de
datos binarias para almacenar los contenidos de un fichero
«.deb» y no depender de ningún programa externo como
gzip(1). Cuando se realiza una generación completa,
automáticamente realiza comprobaciones de cambios en los ficheros y
genera los ficheros de salida comprimidos deseados.
A menos que se use la opción -h o --help, una
de las siguientes órdenes debe estar presente.
packages
La orden «packages» genera un fichero de
paquete a partir de un directorio. Busca recursivamente ficheros
«.deb» en el directorio proporcionado, generando un registro de
paquete en la salida estándar para cada uno. Esta orden es casi un
equivalente de
dpkg-scanpackages(1).
La opción --db se puede usar para especificar una
base de datos binaria para la caché (registro de paquetes).
sources
La orden sources genera un fichero de índice de
fuentes a partir de un directorio. Toma el directorio proporcionado y busca en
él recursivamente ficheros «.dsc», generando un registro
de fuente en la salida estándar para cada uno. Esta orden es casi un
equivalente de
dpkg-scansources(1).
Si se define un fichero alternativo, se buscará un fichero
de fuentes alternativo con la extensión «.src». Puede
usar la opción --source-override para cambiar el fichero de fuentes
alternativo que se usará.
contents
La orden contents genera un fichero de contenidos a
partir de un directorio. Toma el directorio proporcionado y busca en él
recursivamente ficheros «.deb», lee la lista de ficheros para
cada uno, los ordena y muestra en la salida estándar la lista de
ficheros que coinciden con los paquetes. Los directorios no se muestran por la
salida estándar. Si varios paquetes tienen el mismo fichero, entonces
cada paquete se separará por una coma en la salida.
La opción --db se puede usar para especificar una
base de datos binaria para la caché (registro de paquetes).
release
The release command generates a Release file from a
directory tree. It recursively searches the given directory for uncompressed
and compressed Packages, Sources, Contents, Components and icons files as well
as Release, Index and md5sum.txt files by default
(APT::FTPArchive::Release::Default-Patterns). Additional filename patterns can
be added by listing them in APT::FTPArchive::Release::Patterns. It then writes
to stdout a Release file containing (by default) an MD5, SHA1, SHA256 and
SHA512 digest for each file.
Los valores para los campos de metadatos adicionales en el fichero
«Release» se toman de las variables correspondientes en
APT::FTPArchive::Release, por ejemplo APT::FTPArchive::Release::Origin. Los
campos permitidos son: Origin, Label, Suite, Version, Codename, Date,
NotAutomatic, ButAutomaticUpgrades, Acquire-By-Hash, Valid-Until, Signed-By,
Architectures, Components y Description.
generate
La orden generate se ha diseñado para ejecutarse
desde un script de cron y genera los índices de acuerdo a lo
proporcionado en el fichero de configuración. El lenguaje de
configuración proporciona una forma flexible de definir qué
ficheros de índice se generarán a partir de qué
directorios, así como proporcionar una forma sencilla de mantener la
configuración necesaria.
clean
La orden clean ordena las bases de datos que usa el
fichero de configuración proporcionado, eliminando los registros que no
son necesarios.
LA CONFIGURACIÓN DE «GENERATE»¶
La orden generate usa un fichero de configuración para
describir los ficheros que se generarán. Sigue el típico
formato de configuración de ISC presente 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 de
«generate» se analiza por sección, pero
apt.conf(5) se analiza por árbol. Esto sólo afecta a
cómo se maneja el ámbito de la etiqueta.
La configuración de «generate» tiene cuatro
secciones diferentes, descritas a continuación.
Sección Dir¶
La sección Dir define los directorios estándar
necesarios para ubicar los ficheros necesarios durante el proceso de
generación. A estos directorios se les añaden ciertas rutas
relativas definidas en secciones posteriores para producir una ruta
absoluta.
ArchiveDir
Define la raíz del archivo FTP; en una
configuración estándar de Debian éste es el directorio
que contiene el ls-LR y los nodos «dist».
OverrideDir
Define la ubicación de los ficheros
alternativos.
CacheDir
Define la ubicación de los ficheros
almacenados.
FileListDir
Define la ubicación de los ficheros del listado de
ficheros, si se usa posteriormente el valor FileList.
Sección Default¶
La sección Default define los valores predeterminados, y
los ajustes que controlan la operación del generador. Otras secciones
pueden sobrescribir estos valores predeterminados con un valor de la
sección.
Packages::Compress
Sets the default compression schemes to use for the
package index files. It is a string that contains a space separated list of at
least one of the compressors configured via the APT::Compressor
configuration scope. The default for all compression schemes is '.
gzip'.
Packages::Extensions
Define la lista predeterminada de extensiones de fichero
que son ficheros de paquete. El valor predeterminado es
«.deb».
Sources::Compress
Esta opción es similar a Packages::Compress
excepto que controla la compresión para los ficheros
«Sources».
Sources::Extensions
Define la lista predeterminada de las extensiones de
fichero que son ficheros de fuentes. El valor predeterminado es
«.dsc».
Contents::Compress
Esta opción es similar a Packages::Compress
excepto que controla la compresión para los ficheros
«Contents».
Translation::Compress
Esta opción es similar a Packages::Compress
excepto que controla la compresión para el fichero maestro
Translation-en.
DeLinkLimit
Define el número de kilobytes a desenlazar (y
reemplazar con enlaces duros) por ejecución. Se usa junto al valor
External-Links de cada sección.
FileMode
Define el modo de todos los ficheros de índice
creados. El valor predeterminado es 0644. Todos los ficheros de índice
se ajustan a este modo sin tener en cuenta la máscara de usuario
(«umask»).
LongDescription
Define si se incluyen descripciones largas en el fichero
Packages, o si se separan en un fichero Translation-en maestro.
Sección TreeDefault¶
Define los valores predeterminados de las secciones Tree. Todas
estas variables son variables de sustitución y reemplazan las cadenas
$(DIST), $(SECTION) y $(ARCH) con sus valores respectivos.
MaxContentsChange
Define el número de kilobytes de los ficheros de
contenido que se generan cada día. Los ficheros de contenido
están en una cola «round-robin», de modo que durante
varios días todos se regenerarán.
ContentsAge
Controla el número de días en los que se
permite comprobar un fichero de contenido sin cambios. Si este límite
caduca, el tiempo de modificación (mtime) del fichero de contenido se
actualiza. Este caso puede aparecer si un fichero de paquete cambia de forma
que no resulte en un fichero de contenido nuevo (por ejemplo, una
edición alternativa). Se permite la retención con la esperanza
de que se instalen nuevos «.deb», lo cual precisa un fichero
nuevo de todos modos. El valor predeterminado es diez, las unidades usadas son
días.
Directory
Define la raíz del directorio
«.deb». El valor predeterminado es
$(DIST)/$(SECTION)/binary-$(ARCH)/
SrcDirectory
Define la raíz del directorio de los paquetes de
fuentes. El valor predeterminado es $(DIST)/$(SECTION)/source/
Packages
Define el fichero «Packages» de salida. El
valor predeterminado es $(DIST)/$(SECTION)/binary-$(ARCH)/Packages
Sources
Define el fichero «Sources» de salida. El
valor predeterminado es $(DIST)/$(SECTION)/source/Sources
Translation
Define el fichero maestro «Translation-en»
que contiene las descripciones largas en el caso de que no se incluyan en el
fichero «Packages». El valor predeterminado es
$(DIST)/$(SECTION)/i18n/Translation-en
InternalPrefix
Define el prefijo de la ruta que hace que un enlace
simbólico se considere un enlace interno en lugar de un enlace externo.
El valor predeterminado es $(DIST)/$(SECTION)/
Contents
Define el fichero «Contents» de salida. El
valor predeterminado es $(DIST)/Contents-$(ARCH). Si este valor provoca que
varios ficheros «Packages» se relacionen con un único
fichero «Contents» (el comportamiento predeterminado),
apt-ftparchive integrará automáticamente esos ficheros de
paquete.
Contents::Header
Define el fichero de cabecera a añadir al fichero
«Contents» de salida.
BinCacheDB
Define la base de datos binaria de la caché para
usar en esta sección. Varias secciones pueden compartir la misma base
de datos.
FileList
Define que apt-ftparchive debería leer la
lista de ficheros del fichero proporcionado en lugar de explorar
recursivamente el árbol de directorios. A los nombres de los ficheros
relativos se les añade como prefijo el directorio del archivo.
SourceFileList
Define que apt-ftparchive debería leer la
lista de ficheros del fichero proporcionado en lugar de explorar
recursivamente el árbol de directorio. A los nombres de los ficheros
relativos se les añade como prefijo el directorio del archivo.
Sólo se usa cuando se procesan índices de fuentes.
Sección Tree¶
La sección Tree define un árbol de un archivo de
paquetes Debian estándar que consiste en un directorio base, varias
secciones en ese directorio base y finalmente varias arquitecturas en cada
sección. La ruta exacta usada se define en la variable de
sustitución Directory.
La sección Tree toma un ámbito de una etiqueta que
define la variable $(DIST) y la raíz del árbol (a la ruta se
le añade el prefijo ArchiveDir). Normalmente esto es un valor como
dists/bookworm.
Todos los valores definidos en la sección TreeDefault se
pueden utilizar en la sección Tree, así como tres nuevas
variables.
Cuando se procesa una sección Tree apt-ftparchive
realiza una operación similar a la siguiente:
for i in Sections do
for j in Architectures do
Generar con DIST=scope SECTION=i ARCH=j
Sections
Es una lista de secciones separadas por espacios que
aparecen bajo la distribución; habitualmente, es similar a main contrib
non-free non-free-firmware.
Architectures
This is a space separated list of all the architectures
that appear under search section. The special architecture 'source' is used to
indicate that this tree has a source archive. The architecture 'all' signals
that architecture specific files like Packages should not include information
about architecture all packages in all files as they will be available in a
dedicated file.
LongDescription
Define si se incluyen descripciones largas en el fichero
Packages, o si se separan en un fichero Translation-en maestro.
BinOverride
Define el fichero binario alternativo. Éste
contiene la información sobre la sección, la prioridad y la
dirección del mantenedor.
SrcOverride
Define el fichero de fuentes alternativo. Éste
contiene la información sobre la sección.
ExtraOverride
Define el fichero binario alternativo adicional.
SrcExtraOverride
Define el fichero de fuentes alternativo adicional.
Sección BinDirectory¶
La sección bindirectory define un directorio binario sin
ningún tipo de estructura especial. El ámbito de la etiqueta
define la ubicación del directorio binario, la configuración
es similar a la sección Tree sin sustituir las variables o la
configuración de SectionArchitecture.
Packages
Define el fichero «Packages» de
salida.
Sources
Define el fichero «Sources» de salida. Es
necesario al menos un fichero Packages o Sources.
Contents
Define el fichero «Contents» de salida
(opcional)
BinOverride
Define el fichero binario alternativo.
SrcOverride
Define el fichero de fuentes alternativo.
ExtraOverride
Define el fichero binario alternativo adicional.
SrcExtraOverride
Define el fichero de fuentes alternativo adicional.
BinCacheDB
Define la base de datos de la caché.
PathPrefix
Añade una ruta a todas las rutas de salida.
FileList, SourceFileList
Define el fichero de la lista de ficheros.
EL FICHERO BINARIO ALTERNATIVO¶
El fichero binario alternativo es totalmente compatible con
dpkg-scanpackages(1). Contiene cuatro campos separados por espacios.
El primero es el nombre del paquete, el segundo la prioridad asignada el
paquete, el tercero es la sección a la que se fuerza el paquete y el
último es el campo de permutación del mantenedor.
La forma general del campo del mantenedor es:
antigua [// antigua-n]* => nueva
o simplemente
La primera forma permite una lista separada por barras dobles de
las direcciones de correo electrónico antiguas a definir. Si se
encuentra cualquier de ellas «nueva» se sustituye por el campo
del mantenedor. La segunda forma sustituye de forma incondicional el campo
del mantenedor.
EL FICHERO DE FUENTES ALTERNATIVO¶
El fichero de fuentes alternativo es totalmente compatible con
dpkg-scansources(1). Contiene dos campos separados por espacios. El
primero es el nombre del paquete fuente, el segundo es la sección a
la que se asignará.
EL FICHERO ALTERNATIVO ADICIONAL¶
El fichero alternativo adicional permite añadir o
reemplazar en la salida cualquier etiqueta arbitraria. 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 órdenes se pueden
definir mediante el fichero de configuración, las descripciones
indican la opción de la configuración a definir. Para opciones
de tipo «boolean» puede invalidar el fichero de
configuración utilizando algo como -f-,--no-f,
-f=no u otras muchas variaciones.
--md5, --sha1, --sha256, --sha512
Genera la suma de control dada. Por omisión, estas
opciones están activas. Si se desactivan, los ficheros de índice
generados no contendrán los campos de suma de control donde sea posibl.
Opciones de configuración: APT::FTPArchive::Checksum y
APT::FTPArchive::Index::Checksum donde Index puede ser
Packages, Sources o Release, y Checksum puede ser MD5, SHA1, SHA256 o
SHA512.
-d, --db
Utiliza una base de datos binaria para la caché.
Ésto no afecta a la orden «generate». Opción de
configuración: APT::FTPArchive::DB.
-q, --quiet
Silencioso, produce una salida adecuada para su
almacenamiento, omitiendo los indicadores de progreso. Más letras
«q» producen una salida más silenciosa, hasta un
máximo de dos letras. Además, es posible usar -q=# para
ajustar el nivel de silencio, ignorando el fichero de configuración.
Opción de configuración: quiet.
--delink
Realiza el desenlazado. Esta opción activa el
desenlazado de los ficheros si se usa la opción External-Links. Esta
activa de forma predeterminada y se puede desactivar mediante
--no-delink. Opción de configuración:
APT::FTPArchive::DeLinkAct.
--contents
Realiza la generación de «contents».
Cuando se usa esta opción y los índices de los paquetes se
están generando con una base de datos de la caché, el listado de
los ficheros se extraerá también y se almacenará en la
base de datos para su uso posterior. Cuando se usa la orden
«generate» esta opción también permite la
creación de cualquier fichero «Contents». Esta activa de
forma predeterminada. Opción de configuración:
APT::FTPArchive::Contents.
-s, --source-override
Selecciona el fichero de fuentes alternativo a usar con
la orden sources. Opción de configuración:
APT::FTPArchive::SourceOverride.
--readonly
Define los permisos de las bases de datos de la
caché como sólo lectura. Opción de configuración:
APT::FTPArchive::ReadOnlyDB.
-a, --arch
Hace que las órdenes packages y contents
sólo acepten aquellos paquetes que coinciden con *_arch.deb o
*_all.deb, en lugar de todos los ficheros de paquete en la ruta dada. Elemento
de configuración: APT::FTPArchive::Architecture.
APT::FTPArchive::AlwaysStat
apt-ftparchive(1) almacena tantos metadatos como
sea posible en una base de datos de almacenamiento. Si los paquetes se
recompilan o publican otra vez con la misma versión aparecerán
problemas ya que se usarán los metadatos almacenados y ahora obsoletos
tales como el tamaño o la suma de control. Esta situación se
evitará si se activa esta opción ya que se comprobará si
el fichero ha cambiado. Tenga en cuenta que esta opción está
definida como «false» por omisión, ya que no se
recomienda subir varias versiones o compilaciones de un paquete con el mismo
número de versión, así que en teoría nadie
debería tener problemas y por ello todas estas comprobaciones
adicionales son innecesarias.
APT::FTPArchive::LongDescription
De forma predeterminada esta opción de
configuración se define como «true» y sólo se
debería definir como «false» si el archivo de paquetes
generado con
apt-ftparchive(1) también proporciona ficheros
Translation. Tenga en cuenta que el fichero maestro Translation-en sólo
se puede crear con la orden «generate».
-h, --help
Muestra un mensaje corto sobre el uso.
-v, --version
Muestra la versión del programa.
-c, --config-file
Fichero de configuración: Especifica el fichero de
configuración a usar. El programa leerá el fichero de
configuración predeterminado y, después, este fichero de
configuración. Si necesita que ciertas opciones de configuración
se definan antes que el análisis de los de los ficheros de
configuración predeterminados, defina un fichero con la variable de
entorno
APT_CONFIG. Consulte
apt.conf(5) para información
sobre la sintaxis.
-o, --option
Define una opción de configuración: Esto
definirá una opción arbitraria de configuración. La
sintaxis es -o Algo::Cosa=cosa. -o y --option se pueden
usar varias veces para definir diferentes opciones.
EJEMPLOS¶
Para crear un fichero «Packages» comprimido para un
directorio que contenga paquetes binarios («.deb»):
apt-ftparchive packages directorio | gzip > Packages.gz
DIAGNÓSTICOS¶
apt-ftparchive devuelve cero si no hay ningún error,
y el valor 100 en caso de error.
BUGS¶
Página de errores de APT[1]. Si quiere informar de
un error en APT, consulte /usr/share/doc/debian/bug-reporting.txt o use la
orden reportbug(1).
TRADUCCIÓN¶
La traducción al español la realizaron Ismael Fanlo,
Carlos Mestre, Rudy Godoy, Gustavo Saldumbide, Javier
Fernández-Sanguino y Rubén Porras Campo entre los años
2003 y 2004. La traducción fue actualizada por Francisco Javier
Cuadrado y Omar Campagne Polaino entre los años 2009 y 2012 .
Tenga en cuenta que este documento puede contener secciones sin
traducir. Esto es intencionado para evitar perder contenido cuando la
traducción no está actualizada con respecto al documento
original.
AUTORES¶
Jason Gunthorpe
Equipo de APT
NOTAS¶
- 1.
- Página de errores de APT