APT-FTPARCHIVE(1) APT APT-FTPARCHIVE(1) NOME apt-ftparchive - Utilitario para gerar ficheiros de indice SINOPSE apt-ftparchive [-dsq] [--md5] [--delink] [--readonly] [--contents] [--arch architecture] [-o=config_string] [-c=ficheiro_de_configuracao] {packages caminho [ficheiro_de_sobreposicao [prefixo_de_caminho]] | sources caminho [ficheiro_de_sobreposicao [prefixo_de_caminho]] | contents caminho | release caminho | generate ficheiro_de_configuracao seccao... | clean ficheiro_de_configuracao | {-v | --version} | {-h | --help}} DESCRICAO apt-ftparchive e a ferramenta de linha de comandos que cria os ficheiros indice que o APT usa para aceder a uma fonte de distribuicao. Os ficheiros indice devem ser gerados no site de origem baseados no conteudo desse site. apt-ftparchive e um super conjunto do programa dpkg-scanpackages(1), incorporando todas as suas funcionalidades atraves do comando packages. Tambem contem um gerador de ficheiro de conteudos, contents, e um meio elaborado de colocar em script o processo de geracao para um arquivo completo. Internamente o apt-ftparchive pode fazer uso de bases de dados binarias para por em cache os conteudos de um ficheiro .deb e nao precisa de nenhum programa externo a excepcao do gzip(1). Quando faz uma geracao completa, executa automaticamente verificacoes de alteracoes de ficheiros e constroi os ficheiros comprimidos desejados. A menos que a opcao -h, ou --help seja fornecida, um dos comandos abaixo tem que estar presentes. packages O comando packages gera um ficheiro pacote a partir duma arvore de directorios. Recebe um dado directorio e procura recursivamente por ficheiros .deb, emitindo um registo de pacote para o stdout por cada um. Este comando e aproximadamente equivalente ao dpkg- scanpackages(1). A opcao --db pode ser usada para especificar uma base de dados de cache binaria. sources O comando sources gera um indice de fonte a partir duma arvore de directorios. Recebe um dado directorio e procura recursivamente por ficheiros .dsc, emitindo um registo de fonte para o stdout por cada um. Este comando e aproximadamente equivalente ao dpkg- scansources(1). Se for especificado um ficheiro de sobreposicao entao sera procurado um ficheiro de sobreposicao de fonte com uma extensao de .src. A opcao --source-override pode ser usada para alterar o ficheiro de sobreposicao de fonte que ira ser usado. contents O comandocontents gera um ficheiro de conteudos a partir duma arvore de directorios. Recebe um dado directorio e procura recursivamente por ficheiros .deb, e le a lista de ficheiros de cada ficheiro. Entao organiza e escreve para o stdout a lista de ficheiros correspondente a pacotes. Os directorios nao sao escritos no saida. Se multiplos pacotes possuirem o mesmo ficheiro entao cada pacote e separado por uma virgula na saida. A opcao --db pode ser usada para especificar uma base de dados de cache binaria. release O comando release gera um ficheiro Release a partir de uma arvore de directorios. Por predefinicao, procura recursivamente no directorio fornecido por ficheiros Packages, Sources, Contents, Components e icons comprimidos e nao comprimidos assim como ficheiros Release, Index e md5sum.txt por predefinicao. (APT::FTPArchive::Release::Default-Patterns). Padroes adicionais de nomes de ficheiros pode ser adicionados ao lista-los em APT::FTPArchive::Release::Patterns. Depois escreve para o stdout um ficheiro Release que contem (por predefinicao) um resultado de MD5, SHA1, SHA256 e SHA512 para cada ficheiro. Valores para os campos de metadados adicionais no ficheiro Release sao tomados a partir das variaveis correspondentes sob APT::FTPArchive::Release, ex. APT::FTPArchive::Release::Origin. Os campos suportados sao Origin, Label, Suite, Version, Codename, Date, NotAutomatic, ButAutomaticUpgrades, Acquire-By-Hash, Valid-Until, Signed-By, Architectures, Components e Description. generate O comando generate e desenhado para ser executado a partir dum script cron e constroi indices de acordo com o ficheiro de configuracao fornecido. A linguagem de configuracao disponibiliza um meio flexivel de de especificar quais ficheiros indice sao construidos a partir de quais directorios, assim como disponibilizar um meio simples de manter as definicoes requeridas. clean O comando clean arruma as bases de dados usadas pelo ficheiro de configuracao fornecido ao remover quaisquer registos que ja nao sao necessarios. A CONFIGURACAO DO GENERATE O comando generate usa um ficheiro de configuracao para descrever os arquivos que vao ser gerados. Segue o formato tipico de configuracao ISC como visto em ferramentas ISC como o bind 8 e dhcpd. apt.conf(5) contem uma descricao da sintaxe. Note que a configuracao gerada e analisada de maneira seccional, mas o apt.conf(5) e analisado numa maneira de arvore. Isto apenas afecta o modo de como a etiqueta scope e manuseada. A configuracao do generate tem 4 seccoes separadas, cada uma descrita mais abaixo. Seccao Dir A seccao Dir define os directorios standard necessarios para localizar os ficheiros requisitados durante o processo de geracao. Estes directorios precedem a certos caminhos relativos definidos em seccoes posteriores para produzir um caminho completo e absoluto. ArchiveDir Especifica a raiz do arquivo FTP, numa configuracao Debian standard este e o directorio que contem o ls-LR e nos da distribuicao. OverrideDir Especifica a localizacao dos ficheiros de sobrepor. CacheDir Especifica a localizacao dos ficheiros de cache FileListDir Especifica a localizacao dos ficheiros de listas de ficheiros, se a definicao FileList for usada mais abaixo. Seccao Default A seccao Default especifica valores predefinidos, e definicoes que controlam a operacao do gerador. Outras seccoes podem sobrepor estas predefinicoes em uma definicao por-seccao. Packages::Compress Define os esquemas de compressao predefinidos a usar para os ficheiros de indice package. E uma string que contem uma lista separada por espacos de pelo menos um dos compressores configurados via scope de configuracao APT::Compressor. A predefinicao para todos os esquemas de compressao e '. gzip'. Packages::Extensions Define a lista predefinida das extensoes de ficheiros que sao ficheiros pacote. A predefinicao e '.deb'. Sources::Compress Isto e semelhante a Packages::Compress excepto que controla a compressao para os ficheiros das Fontes. Sources::Extensions Define a lista predefinida das extensoes de ficheiros que sao ficheiros de fontes. A predefinicao e '.dsc'. Contents::Compress Isto e semelhante a Packages::Compress excepto que controla a compressao para os ficheiros de Conteudos. Translation::Compress Isto e semelhante a Packages::Compress excepto que controla a compressao para o ficheiro mestre Translation-en. DeLinkLimit Especifica o numero de kilobytes para delink (e substitui com hard links) por execucao. Isto e usado em conjunto com a definicao External-Links por seccao. FileMode Especifica o modo de todos os ficheiros indice criados. A predefinicao e 0644. Todos os ficheiros indice sao definidos para este modo independentemente do umask. LongDescription Define se as descricoes longas devem ser incluidas no ficheiro Packages ou divididas em um ficheiro Translation-en mestre. Seccao TreeDefault Define predefinicoes especificas para as seccoes Tree. Todas estas variaveis sao variaveis de substituicao e tem as strings $(DIST), $(SECTION) e $(ARCH) substituidas pelos seus respectivos valores. MaxContentsChange Define o numero de kilobytes dos ficheiros de conteudo que sao gerados a cada dia. Os ficheiros de conteudo sao re-circulados para que ao fim de alguns dias todos sejam reconstruidos. ContentsAge Controla o numero de dias que se permite a um ficheiro de conteudo ser verificado sem alteracao. Se este limite for ultrapassado o mtime do ficheiro de conteudo e actualizado. Este caso pode ocorrer se o ficheiro de pacote e alterado num modo que nao resulta num novo ficheiro de conteudo [por exemplo uma edicao de sobreposicao]. E permitido um soltar na esperanca que novos .debs sejam instalados, requerendo um novo ficheiro de qualquer modo. A predefinicao e 10, as unidades sao em dias. Directory Define o topo da arvore de directorios .deb. A predefinicao e $(DIST)/$(SECTION)/binary-$(ARCH)/ SrcDirectory Define o topo da arvore de directorios de pacotes fonte. A predefinicao e $(DIST)/$(SECTION)/source/ Packages Define o ficheiro Packages de saida. A predefinicao e $(DIST)/$(SECTION)/binary-$(ARCH)/Packages Sources Define o ficheiro Sources de saida. A predefinicao e $(DIST)/$(SECTION)/source/Sources Translation Define se o ficheiro mestre Translation-en de saida com as descricoes longas nao deve ser incluido no ficheiro Packages. A predefinicao e $(DIST)/$(SECTION)/i18n/Translation-en InternalPrefix Define o prefixo de caminho que causa que um symlink seja considerado um link interno em vez de um link externo. A predefinicao e $(DIST)/$(SECTION)/ Contents Define a saida do ficheiro Contents. A predefinicao e $(DIST)/Contents-$(ARCH). Se esta definicao causar multiplos ficheiros Packages para mapear em um unico ficheiro Contents (tal como a predefinicao) entao o apt-ftparchive ira automaticamente integrar esses ficheiros pacotes todos juntos. Contents::Header Define o ficheiro cabecalho para prefixar a saida de conteudos. BinCacheDB Define a base de dados de cache binaria a usar para esta seccao. Multiplas seccoes podem partilhar a mesma base de dados. FileList Especifica que em vez de navegar na arvore de directorios, o apt-ftparchive devera ler a lista de ficheiros a partir do ficheiro fornecido. Nomes de ficheiros relativos sao prefixados com o directorio de arquivo. SourceFileList Especifica que em vez de navegar na arvore de directorios, o apt-ftparchive devera ler a lista de ficheiros a partir do ficheiro fornecido. Nomes de ficheiros relativos sao prefixados com o directorio de arquivo. Isto e usado quando se processa indices de fonte. Seccao Tree A seccao Tree define uma arvore de ficheiros Debian standard que consiste de um directorio base, depois multiplas seccoes nesse directorio base e finalmente multiplas Arquitecturas em cada seccao. O caminho exacto usado e definido pela variavel de substituicao Directory. A seccao Tree recebe uma etiqueta scope que define a variavel $(DIST) e define a raiz da arvore (o caminho e prefixado por ArchiveDir). Tipicamente esta e uma definicao tal como dists/bookworm. Todas as definicoes definidas na seccao TreeDefault podem ser usadas na seccao Tree assim como as novas tres variaveis. Quando processa uma seccao Tree, o apt-ftparchive executa uma operacao semelhante a: for i in Sections do for j in Architectures do Generate for DIST=scope SECTION=i ARCH=j Sections Isto e uma lista de seccoes separada por espacos que aparece sob a distribuicao, tipicamente isto e algo como main contrib non-free non-free-firmware Architectures Esta e uma lista separada por espacos de todas as arquitecturas que aparecem sob a seccao de busca. A arquitectura especial 'source' e usada para indicar que esta arvore tem um arquivo fonte. A arquitectura 'all' assinala que ficheiros especificos de arquitectura como o Packages nao devem incluir informacao acerca de pacotes de todas as arquitecturas em todos os ficheiros pois estes estarao disponiveis num ficheiro dedicado. LongDescription Define se as descricoes longas devem ser incluidas no ficheiro Packages ou divididas em um ficheiro Translation-en mestre. BinOverride Define o ficheiro de sobreposicao binario. O ficheiro de sobreposicao informacao de seccao, prioridade e endereco do responsavel. SrcOverride Define o ficheiro de sobreposicao fonte. O ficheiro de sobreposicao informacao de seccao. ExtraOverride Define o ficheiro de sobreposicao extra binario. SrcExtraOverride Define o ficheiro de sobreposicao extra fonte. Seccao BinDirectory A seccao bindirectory define uma arvore de directorios binarios sem nenhuma estrutura especial. A etiqueta scope especifica a localizacao do directorio binario e as definicoes sao semelhantes as da seccao Tree sem nenhumas variaveis de substituicao ou definicoes SectionArchitecture. Packages Define a saida do ficheiro Packages. Sources Define a saida do ficheiro Sources. E necessario pelo menos um de Packages ou Sources. Contents Define a saida do ficheiro Contents (opcional) BinOverride Define o ficheiro de sobreposicao binario. SrcOverride Define o ficheiro de sobreposicao fonte. ExtraOverride Define o ficheiro de sobreposicao extra binario. SrcExtraOverride Define o ficheiro de sobreposicao extra fonte. BinCacheDB Define a base de dados de cache. PathPrefix Acrescenta um caminho a todos os caminhos de saida. FileList, SourceFileList Especifica o ficheiro de lista de ficheiros. O FICHEIRO BINARY OVERRIDE O ficheiro de sobreposicao binario e totalmente compativel com dpkg- scanpackages(1). Contem 4 campos separados por espacos. O primeiro campo e o nome do pacote, o segundo e a prioridade a qual forcar esse pacote, o terceiro e a seccao onde forcar esse pacote e o ultimo campo e o campo de permutacao do responsavel. O formato geral do campo do responsavel e: old [// oldn]* => new ou simplesmente, new . O primeiro formato permite uma lista separada por um duplo slash (//) de antigos enderecos e email a serem especificados. Se nenhum destes for encontrado entao 'new' e substituido para o campo do responsavel. O segundo formato substitui incondicionalmente o campo do responsavel. O FICHEIRO SOURCE OVERRIDE O ficheiro de sobreposicao de fonte e totalmente compativel com dpkg- scansources(1). Contem dois campos separados por espacos. O primeiro campo e o nome de pacote fonte, o segundo e a seccao onde o atribuir. O FICHEIRO EXTRA OVERRIDE O ficheiro de sobreposicao extra permite que qualquer etiqueta arbitraria seja adicionada ou substituida na saida. Tem 3 colunas, a primeira e o pacote, a segunda e a etiqueta e restante da linha e o novo valor. OPCOES Todas as opcoes de linha de comandos podem ser definidas usando o ficheiro de configuracao, as descricoes indicam a opcao de configuracao a definir. Para opcoes booleanas voce pode sobre por o ficheiro de configuracao usando algo como -f-,--no-f, -f=no ou varias outras variantes. --md5, --sha1, --sha256, --sha512 Gera o sumario de verificacao dado. Estas opcoes estao ligadas por predefinicao, quando sao desligadas os ficheiros de indice gerados nao terao os campos de sumario de verificacao onde forem possiveis. Items de Configuracao: APT::FTPArchive::Checksum e APT::FTPArchive::Index::Checksum Onde Index pode ser Packages, Sources ou Release e Checksum pode ser MD5, SHA1, SHA256 ou SHA512. -d, --db Usa uma base de dados de cache binaria. Isto nao tem efeito no comando generate. Item de configuracao: APT::FTPArchive::DB. -q, --quiet Silencioso; produz saida apropriada para registar em logs, omitindo indicadores de progresso. Mais q's irao produzir mais silencio ate um maximo de 2. Voce tambem pode usar -q=# para definir o nivel de silencio, sobrepondo o ficheiro de configuracao. Item de Configuracao: quiet. --delink Executa Dissociacao. Se e usada a definicao External-Links entao esta opcao activa a dissociacao dos ficheiros. A sua predefinicao e ligada e e pode ser desligada com --no-delink. Item de Configuracao: APT::FTPArchive::DeLinkAct. --contents Executa a geracao de conteudos. Quando esta opcao esta definida e os indices de pacotes sao gerados com um base de dados cache entao a listagem de ficheiros tambem sera extraida e guardada na base de dados para utilizacao posterior. Quando se usa o comando generate, esta opcao tambem permite a criacao de quaisquer ficheiros de Conteudos. A predefinicao e ligado. Item de Configuracao: APT::FTPArchive::Contents. -s, --source-override Seleciona o ficheiro de sobreposicao de fonte a usar com o comando sources. Item de Configuracao: APT::FTPArchive::SourceOverride. --readonly Torna as bases de dados de cache apenas de leitura. Item de Configuracao: APT::FTPArchive::ReadOnlyDB. -a, --arch Aceita nos comandos packages e contents apenas ficheiros de pacotes que condizem com *_arch.deb ou *_all.deb em vez de todos os ficheiros de pacotes presentes no caminho fornecido. Item de Configuracao: APT::FTPArchive::Architecture. APT::FTPArchive::AlwaysStat apt-ftparchive(1) poe em cache o maximo possivel de metadados numa base de dados de cache. Se os pacotes forem recompilados e/ou republicados de novo com a mesma versao, ira originar problemas porque serao usados os metadados desatualizados em cache como o tamanho e sumarios de verificacao. Com esta opcao activa isto nao ira mais acontecer porque sera verificado se o ficheiro foi alterado. Note que esta opcao vem regulada para "false" por predefinicao pois nao e recomendado disponibilizar multiplas versoes/compilacoes de um pacote com o mesmo numero de versao, portanto em teoria ninguem ira ter estes problemas e entao todas as verificacoes extras serao desnecessarias. APT::FTPArchive::LongDescription Esta opcao de configuracao tem a predefinicao de "true" e deve apenas ser definida para "false" se o Arquivo gerado com apt- ftparchive(1) tambem disponibilizar ficheiros Translation. Note que o ficheiro mestre Translation-en so pode ser criado no comando generate. -h, --help Mostra um sumario curto da utilizacao. -v, --version Mostra a versao do programa. --audit Show audit (and notice) messages. This overrides the quiet option, but only for notice messages, not progress ones. -c, --config-file Ficheiro de Configuracao; Especifica o ficheiro de configuracao a usar. O programa ira ler o ficheiro de configuracao predefinido e depois este ficheiro de configuracao. Se as definicoes de configuracao precisarem de ser definidas antes, os ficheiros de configuracao predefinidos sao analisados especificando um ficheiro com a variavel de ambiente APT_CONFIG. Veja apt.conf(5) para informacao de sintaxe. -o, --option Set a Configuration Option; This will set an arbitrary configuration option. The syntax is -o Foo::Bar=bar. -o and --option can be used multiple times to set different options. --no-color, --color Turn colors on or off. Colors are on by default on supported terminals for apt(8) and can also be disabled using the NO_COLOR or APT_NO_COLOR environment variables, or further configured by the APT::Color configuration option and scope, see apt.conf(5) for information on that. EXEMPLOS Para criar um ficheiro Packages comprimido para um directorio que contem pacotes binarios (.deb): apt-ftparchive packages directorio | gzip > Packages.gz VEJA TAMBEM apt.conf(5) DIAGNOSTICO apt-ftparchive devolve zero na operacao normal, 100 decimal em erro. BUGS pagina de bugs do APT[1]. Se deseja reportar um bug no APT, por favor veja /usr/share/doc/debian/bug-reporting.txt ou o comando reportbug(1). TRADUCAO A traducao Portuguesa foi feita por Americo Monteiro de 2009 a 2012. A traducao foi revista pela equipa de traducoes portuguesas da Debian . Note que este documento traduzido pode conter partes nao traduzidas. Isto e feito propositadamente, para evitar perdas de conteudo quando a traducao esta atrasada relativamente ao conteudo original. AUTORES Jason Gunthorpe Equipa do APT NOTAS 1. pagina de bugs do APT https://bugs.debian.org/src:apt APT 2.9.6 29 Janeiro 2023 APT-FTPARCHIVE(1)