APT.CONF(5)

NOME
apt.conf - Ficheiro de configuração para o APT

DESCRIçãO

/etc/apt/apt.conf é o ficheiro de configuração principal partilhado por todas as ferramentas na suite de ferramentas do APT, no entanto não é de maneira nenhuma o único local onde se pode definir opções. A suite também partilha um analisador comum de linha de comandos para disponibilizar um ambiente uniforme.

Quando a ferramenta APT arranca irá ler os ficheiros de configuração pela seguinte ordem:

    1. o ficheiro especificado pela variável de ambiente APT_CONFIG (se existir)

    2. todos os ficheiros em Dir::Etc::Parts em ordem ascendente alfa-numérica não têm extensão ou têm "conf" como extensão do nome de ficheiro e que apenas contêm caracteres alfa-numéricos, traços (-), underscores (_) e pontos (.). Caso contrário o APT irá escrever um aviso de que ignorou um ficheiro, a menos que o ficheiro corresponda a um padrão na lista de configuração de Dir::Ignore-Files-Silently - que então nesse caso será ignorado em silêncio.

    3. o ficheiro de configuração principal especificado por Dir::Etc::main

    4. as opções de linha de comandos são aplicadas para sobrepor as directivas de configuração ou para carregar mais ficheiros de configuração.

SINTAXE

O ficheiro de configuração é organizado numa árvore com as opções organizadas em grupos de funcionamento. A especificação das opções é dada com um sinal de dois pontos duplo , por exemplo APT::Get::Assume-Yes é uma opção dentro do grupo de ferramentas do APT, para a ferramenta Get. A opções não herdam dos seus grupos parentes.

Sintácticamente a linguagem de configuração é modelada após o que as ferramentas ISC usam, como o bind e o dhcp. As linhas que começam com // são tratadas como comentários (ignoradas), assim como todo o texto entre /* e */, tal como os comentários de C/C++. Cada linha é do formato APT::Get::Assume-Yes "true";. As aspas e o ponto-e-vírgula final são necessários. O valor deve estar em uma linha, e não existe nenhum tipo de concatenação de string. Os valores não podem incluir barras invertidas ou aspas extras. Os nomes das opções são feitos de caracteres alfa-numéricos e os caracteres "/-:._+". Um novo scope pode ser aberto com chavetas, assim:

    APT {
      Get {
        Assume-Yes "true";
        Fix-Broken "true";
      };
    };

com novas linhas colocadas para o tornar mais legível. As listas podem ser criadas ao abrir um scope e incluindo uma string única entre aspas seguida por um ponto e vírgula. Podem ser incluídas múltiplas entradas, separadas por um ponto e vírgula (;).

    DPkg::Pre-Install-Pkgs {"/usr/sbin/dpkg-preconfigure --apt";};

Em geral o exemplo de ficheiro de configuração em /usr/share/doc/apt/examples/apt.conf /usr/share/doc/apt/examples/configure-index.gz é um bom guia de como deve ficar.

Maiúsculas e minúsculas não são significativas nos nomes dos items de configuração, portanto no exemplo prévio você poderia usar dpkg::pre-install-pkgs.

Os nomes dos items de configuração são opcionais se uma lista for definida com pode ser vista no exemplo DPkg::Pre-Install-Pkgs acima. Se você não especificar um nome, uma nova entrada irá simplesmente adicionar uma nova opção à lista. Se você especificar um nome, você pode sobrepor a opção como qualquer outra opção ao re-atribuir um novo valor à opção.

Estão definidos dois comandos especiais, #include (a qual está obsoleto e não é suportado por implementações alternativas) e #clear: #include irá incluir o ficheiro fornecido, a menos que o nome do ficheiro termine numa barra (/), que no caso todo o directório é incluído. #clear é usado para apagar uma parte da árvore de configuração. O elemento especificado e os seus descendentes são apagados. (Note que estas linhas também precisam de acabar com um 'ponto e vírgula' (;) .)

O comando #clear é a única maneira de apagar uma lista ou um scope completo. Reabrindo um scope (ou usando a sintaxe descrita em baixo com um :: acrescentado) não irá sobrepor entradas escritas anteriormente. As opções podem apenas ser sobrepostas ao atribuir um novo valor a elas - listas e scopes não podem ser sobrepostos, apenas limpos.

Todas as ferramentas do APT recebem uma opção -o que permite uma directiva de configuração arbitrária para ser especificada na linha de comandos. A sintaxe é um nome de opção completo (APT::Get::Assume-Yes por exemplo) seguido por um igual (=) e depois o valor da opção. Para acrescentar um novo elemento a uma lista, adicione um :: ao final do nome da lista. (Como deve suspeitar, a sintaxe de scope não pode ser usada na linha de comandos.)

Note que acrescentar itens a uma lista usando :: só funciona para um item por linha, e que não o deverá usar em combinação com a sintaxe scope (a qual adiciona :: implicitamente). Usar ambas as sintaxes juntamente irá disparar um bug de que infelizmente alguns utilizadores dependem: uma opção com o nome pouco usual "::" o qual actua como qualquer outra opção com um nome. Isto introduz muitos problemas: por um lado, os utilizadores que escrevem múltiplas linhas nesta sintaxe errada na esperança de acrescentarem numa lista irão obter o oposto, pois apenas será usada a última atribuição para esta opção "::". Versões futuras do APT irão dar erros e parar de funcionar se encontrarem esta má utilização, portanto, por favor, corrija tais declarações agora enquanto o APT ainda não se queixa explicitamente delas.

O GRUPO APT

Este grupo de opções controla o comportamento geral do APT assim como mantém as opções para todas as ferramentas.

Architecture
    System Architecture; define a arquitectura a usar quando procura ficheiros e analisa listas de pacotes. A predefinição interna é a arquitectura para a qual o APT foi compilado.

Architectures
    Todas as arquitecturas que o sistema suporta. Por exemplo, CPUs que implementam o conjunto de instruções amd64 (também chamada x86-64) são também capazes de executar binários compilados para o conjunto de instruções i386 (x86). Esta lista é usada quando se busca ficheiros e analisa listas de pacotes. A predefinição inicial é sempre a arquitectura nativa do sistema (APT::Architecture), e as arquitecturas alienígenas são adicionadas à lista predefinida quando são registadas via dpkg --add-architecture.

Default-Release
    Lançamento predefinido de onde instalar pacotes se existir mais de uma versão disponível. Contém o nome do lançamento, nome de código ou versão de lançamento. Exemplos: 'stable', 'testing', 'unstable', 'wheezy', 'jessie', '4.0', '5.0*'. Veja também apt_preferences(5).

Ignore-Hold
    Ignore Held packages; Esta opção global faz com que ao resolver problemas, os pacotes segurados sejam ignorados na sua decisão de marcação.

Clean-Installed
    A predefinição é ligada. Quando ligada, a funcionalidade autoclean irá remover quaisquer pacotes que já não possam ser descarregados a partir da cache. Se desligada, então os pacotes que estão instalados localmente são também excluídos da limpeza - mas note que o APT não disponibiliza um meio directo de os reinstalar.

Immediate-Configure
    A predefinição é ligada, o que irá fazer com que o APT instale pacotes essenciais e importantes assim que possível numa operação de instalação/actualização, de modo a limitar o efeito de uma chamada ao dpkg(1) falhada. Se esta opção for desactivada, o APT trata um pacote importante do mesmo modo que um pacote extra: entre o desempacotamento do pacote A e a sua configuração podem existir muitas outras chamadas de desempacotamento ou configuração para outros pacotes B, C, etc não relacionados. Se eles causarem a falha da chamada do dpkg(1) (ex. porque os scripts do maintainer do pacote B geram um erro), isto resulta num estado do sistema em que o pacote A fica desempacotado mas não configurado - então não fica garantido o funcionamento de qualquer pacote que dependa de A, porque a sua dependência de A não está mais satisfeita.

    O marcador de configuração imediata também é aplicado no caso potencialmente problemático de dependências circulares, pois uma dependência com a bandeira de imediato é equivalente a uma Pré-Dependência. Em teoria isto permite ao APT reconhecer uma situação na qual está incapaz de executar configuração imediata, abortar, e sugerir ao utilizador que a opção deverá ser desactivada temporariamente de modo a permitir que a operação prossiga. Note o uso da palavra "teoria" aqui; no mundo real este problema tem sido raramente encontrado, em versões não-estável da distribuição, e foram causados por dependências erradas do pacote em questão ou por um sistema já no estado corrompido; portanto você não deve desactivar esta opção às cegas. porque em primeiro lugar o cenário mencionado em cima não é o único problema que pode ajudar a prevenir.

    Antes de uma grande operação como dist-upgrade ser executada com esta opção desactivada você deve tentar explicitamente um install ao pacote que o APT não é capaz de configurar imediatamente; mas por favor certifique-se que também reporta o seu problema à sua distribuição e á equipa do APT com o link de bug em baixo, para que eles possa trabalhar em melhorar ou corrigir o processo de actualização.

Force-LoopBreak
    Nunca active esta opção a menos que realmente saiba o que está a fazer. Ela permite que o APT remova temporariamente um pacote essencial para quebrar um ciclo infinito de Conflito/Conflito ou Conflito/Pré-Dependência entre dois pacotes essenciais. Tal ciclo nunca deveria existir e é um bug grave.. Esta opção irá funcionar se os pacotes essenciais não forem tar, gzip, libc, dpkg, dash ou nada de que esses pacotes dependam.

Cache-Start, Cache-Grow, Cache-Limit
    O APT usa desde a versão 0.7.26 um ficheiro de cache com mapa de memória de tamanho ajustável para armazenar a informação disponível. Cache-Start actua como uma dica do tamanho que a cache irá crescer, e é por isso a quantidade de memória que o APT irá requerer no arranque. O valor predefinido é 20971520 bytes (~20 MB). Note que esta quantidade de espaço precisa estar disponível para o APT; caso contrário ele irá com certeza falhar, portanto para dispositivos com pouca memória este valor deve ser diminuído enquanto que em sistemas com muitas fontes configuradas este deve ser aumentado. Cache-Grow define em bytes com a predefinição de 1048576 (~1 MB) em quanto o tamanho da Cache será aumentado no caso do espaço definido por Cache-Start não ser suficiente. Este valor será aplicado várias vezes até que a cache seja suficientemente grande para armazenar toda a informação ou que o tamanho da cache alcance o Cache-Limit. O valor predefinido de Cache-Limit é 0 o que significa nenhum limite. Se Cache-Grow for definido para 0, o crescimento automático da cache é desactivado.

Build-Essential
    Define quais pacotes são considerados dependências essenciais de compilação.

Get
    A subsecção Get controla a ferramenta apt-get(8), por favor veja a sua documentação para mais informação acerca das opções daqui.

Cache
    A subsecção Cache controla a ferramenta apt-cache(8), por favor veja a sua documentação para mais informação acerca das opções daqui.

CDROM
    A subsecção CDROM controla a ferramenta apt-cdrom(8), por favor veja a sua documentação para mais informação acerca das opções de aqui.

O GRUPO ACQUIRE

O grupo de opções Acquire controla a descarga de pacotes assim como os vários "métodos de obtenção" responsáveis pela própria descarga (veja também sources.list(5)).

Check-Valid-Until
    Opção relacionada com segurança com predefinição a 'verdadeiro', como dar a um ficheiros Release uma data de expiração previne ataques repetidos durante longo tempo e pode, por exemplo, ajudar os utilizadores a identificar mirrors que não são actualizados à muito tempo - mas a funcionalidade depende da precisão de hora no sistema do utilizador. Os responsáveis do arquivo são encorajados a criar ficheiros Release com o cabeçalho Valid-Until, mas se não o fizerem ou se preferir-se um valor mais rigoroso pode-se usar a opção Max-ValidTime seguinte.

Max-ValidTime
    O tempo máximo (em segundos) após a sua criação (como indicado pelo cabeçalho Date) que o ficheiro Release deve ser considerado como válido. Se o próprio ficheiro Release incluir um cabeçalho Valid-Until é usada como data de expiração a data que expira mais cedo. O valor predefinido é 0 o que significa "válido para sempre". Podem ser criadas definições específicas de arquivo ao acrescentar a etiqueta do arquivo ao nome da opção.

Min-ValidTime
    O tempo mínimo (em segundos) após a sua criação (como indicado no cabeçalho Date) que o ficheiro Release deve ser considerado como válido. Utilize isto se você necessitar de usar um mirror raramente actualizado (local) de um arquivo actualizado mais frequentemente com um cabeçalho Valid-Until em vez de desactivar completamente a verificação de data de expiração. Podem e devem ser usadas definições especificas do arquivo ao acrescentar a etiqueta do arquivo ao nome da opção.

PDiffs
    Tenta descarregar deltas chamados PDiffs para índices (como os ficheiros Packages) em vez de os descarregar por inteiro. Verdadeiro por predefinição.

    Estão também disponíveis duas sub-opções para limitar o uso de PDiffs: FileLimit pode ser usada para especificar um número máximo de ficheiros PDiff que devem ser descarregados para actualizar um ficheiro. Por outro lado SizeLimit é a percentagem máxima do tamanho de todas as patches comparadas com o tamanho do ficheiro de destino. Se um destes limites for excedido, é descarregado o ficheiro completo em vez das patches.

Queue-Mode
    Modo de fila; Queue-Mode pode ser um de host ou access que determina como o APT paraleliza ligações de saída. host significa que será aberta uma ligação por máquina destino, access significa que será aberta uma ligação por tipo de URI.

Retries
    Número de tentativas a executar. Se isto for diferente de zero o APT irá tentar, no número fornecido de vezes, obter ficheiros falhados.

Source-Symlinks
    Usa links simbólicos para arquivos fonte. Se definido para verdadeiro, então os arquivos fonte serão links simbólicos, quando possível, em vez de cópias. A predefinição é verdadeiro.

http
    http::Proxy define o proxy http predefinido a usar para URIs de HTTP. Está no formato standard de http://[[user][:pass]@]host[:port]/. Também podem ser especificados proxies por máquina ao usar o formato http::Proxy::<host> com a palavra chave especial DIRECT que significa não usar proxies. Se nenhuma das definições acima for especificada, será usada a variável de ambiente http_proxy.

    São disponibilizadas três definições para controle de cache como caches de proxy compatíveis com HTTP/1.1. No-Cache diz ao proxy para não usar a sua resposta em cache sob nenhumas circunstâncias, Max-Age define a idade máxima permitida (em segundos) de um ficheiro índice na cache do proxy. No-Store especifica que o proxy não deve armazenar os ficheiros de arquivo pedidos na sua cache, o que pode ser usado para prevenir que o proxy polua a sua cache com (grandes) ficheiros .deb.

    A opção timeout define o tempo limite usado por este método, este valor aplica-se à ligação assim como os tempos de limite de dados.

    A definição Acquire::http::Pipeline-Depth pode ser usada para activar o 'pipelining' de HTTP (RFC 2616 secção 8.1.2.2) a qual pode ser benéfica por exemplo em ligações de alta latência. Especifica quantos pedidos são enviados num pipeline. As versões anteriores do APT tinham uma predefinição de 10 para esta definição, mas o valor predefinido agora é 0 (= desactivado) para evitar problemas com a quantidade crescente de servidores web e proxies que escolheram não respeitar a especificação HTTP/1.1.

    Acquire::http::AllowRedirect controla se o APT irá seguir os redireccionamentos, o que está activo por predefinição.

    A largura de banda usada pode ser limitada com Acquire::http::Dl-Limit que aceita valores inteiros em kilobytes. O valor predefinido é 0 que desactiva o limite e tenta usar toda a largura de banda disponível (note que esta opção implicitamente desactiva a descarga a partir de múltiplos servidores ao mesmo tempo.)

    Acquire::http::User-Agent pode ser usado para definir um Utilizador-Agente diferente para o método de download por http, porque alguns proxies apenas permitem acesso a clientes se o cliente usar um identificador conhecido.

https
    As opções Cache-control, Timeout, AllowRedirect, Dl-Limit e proxy funcionam para URIs HTTPS do mesmo modo que para o método http, e tem por predefinição os mesmos valores se estes não forem definidos especificamente A opção Pipeline-Depth ainda não é suportada.

    A sub-opção CaInfo especifica o lugar do ficheiro que contém informação acerca de certificados de confiança. <host>::CaInfo é a opção 'por máquina' correspondente. A sub-opção booleana Verify-Peer determina se o certificado da máquina anfitriã deve ou não ser verificado com certificados de confiança. <host>::Verify-Peer é a opção 'por máquina' correspondente. A sub-opção booleana Verify-Host determina se o nome da máquina servidora deve ao não ser verificado. <host>::Verify-Host é a opção 'por máquina' correspondente. SslCert determina qual certificado a usar para autenticação de clientes. <host>::SslCert é a opção 'por máquina' correspondente. SslKey determina qual a chave privada a usar para autenticação de clientes. <host>::SslKey é a opção 'por máquina' correspondente. SslForceVersion sobrepõe a versão SSL predefinida a usar. Pode conter qualquer uma das strings 'TLSv1' ou 'SSLv3'. <host>::SslForceVersion é a opção 'por máquina' correspondente.

ftp
    ftp::Proxy define o proxy predefinido a usar para URIs FTP. Está no formato standard de ftp://[[user][:pass]@]host[:port]/. Os proxies por máquina podem também ser especificados ao usar o formato ftp::Proxy::<host> com a palavra chave especial DIRECT que significa não usar nenhum proxy. Se nenhuma das definições acima for especificada, será usada a variável de ambiente ftp_proxy. Para usar um proxy FTP você tem que definir o script ftp::ProxyLogin no ficheiro de configuração. Esta entrada especifica os comandos a enviar para dizer ao servidor proxy ao que se ligar. Por favor veja /usr/share/doc/apt/examples/configure-index.gz para um exemplo de como fazer isto. As variáveis de substituição que representam o componente URI correspondente são $(PROXY_USER) $(PROXY_PASS) $(SITE_USER) $(SITE_PASS) $(SITE) e $(SITE_PORT).

    A opção timeout define o tempo limite usado por este método, este valor aplica-se à ligação assim como os tempos de limite de dados.

    São disponibilizadas várias definições para controlar o modo passivo. Geralmente é seguro deixar o modo passivo ligado, funciona em quase todos ambientes. No entanto algumas situações requerem que o modo passivo seja desactivado e em vez disso usar o modo port ftp. Isto pode ser feito globalmente ou para ligações que passam por um proxy ou para uma máquina específica (veja a amostra de ficheiro de configuração para exemplos).

    É possível usar proxy FTP sobre HTTP ao definir a variável de ambiente ftp_proxy para um URL HTTP - veja a discussão do método http em cima para a sintaxe. Você não pode definir isto no ficheiro de configuração e não é recomendado usar FTP sobre HTTP devido à sua baixa eficiência.

    A definição ForceExtended controla o uso de comandos RFC2428 EPSV e EPRT. A predefinição é falso, o que significa que estes comandos apenas são usados se a ligação de controle for IPv6. Definir isto para verdadeiro força o seu uso mesmo em ligações IPv4. Note que a maioria dos servidores FTP não suporta RFC2428.

cdrom
    Para URIs que usam o método cdrom, a única opção configurável é ponto de montagem, cdrom::Mount, o qual deve ser o ponto de montagem para o leitor de CD-ROM (ou DVD, etc.) como especificado em /etc/fstab.É possível fornecer comandos de montar e desmontar alternativos se o seu ponto de montagem não puder ser listado na fstab. A sintaxe é colocar

        /cdrom/::Mount "foo";

    dentro do bloco cdrom. É importante ter a barra final. Comandos para desmontar podem ser especificados usando o UMount.

gpgv
    Para URIs de GPGV a única opção configurável é gpgv::Options, a qual passa parâmetros adicionais ao gpgv.

CompressionTypes
    Lista dos tipos de compressão que são compreendidos pelos métodos de aquisição. Ficheiros como Packages podem estar disponíveis em vários formatos de compressão. Por predefinição os métodos de aquisição podem descomprimir ficheiros comprimidos em bzip2, lzma e gzip, mais formatos podem ser adicionados na hora com esta definição ou o método usado pode ser alterado. A sintaxe para isto é:

        Acquire::CompressionTypes::Extensão de Ficheiro "Nome de método";

    Também o subgrupo Order pode ser usado para definir em que ordem o sistema de aquisição irá tentar descarregar os ficheiros comprimidos. O sistema de aquisição irá tentar com o primeiro e prosseguir com o próximo tipo de compressão na lista em caso de erro, portanto para preferir um sobre outro tipo, simplesmente adicione o tipo preferido em primeiro lugar - tipos predefinidos não já adicionados serão acrescentados implicitamente ao fim da lista, então, ex.

        Acquire::CompressionTypes::Order:: "gz";

    pode ser usado para preferir ficheiros comprimidos em gzip sobre bzip2 e lzma. Se o lzma deve ser preferido sobre gzip e bzip2 a definição de configuração deverá parecer-se com isto:

        Acquire::CompressionTypes::Order { "lzma"; "gz"; };

    . Não é necessário adicionar explicitamente bz2 à lista pois isso será adicionado automaticamente.

    Note que o Dir::Bin::nome de método será verificado em tempo de execução. Se esta definição estiver definida, o método apenas será usado se este ficheiro existir; ex. para o método bzip2 (o embutido) a definição é:

        Dir::Bin::bzip2 "/bin/bzip2";

    . Note também que as entradas na lista especificadas na linha de comandos serão adicionadas no fim da lista especificada nos ficheiros de configuração, mas antes das entradas predefinidas. Para preferir um tipo neste caso sobre aqueles especificados nos ficheiros de configuração você pode definir a opção directamente - não em estilo de lista. Isto não irá sobrepor a lista definida, irá apenas prefixar a lista com este tipo.

    O tipo especial uncompressed pode ser usado para dar preferência a ficheiros não comprimidos, mas note que a maioria dos arquivos não disponibiliza ficheiros não comprimidos, portanto isto é usado maioritariamente apenas para mirrors locais.

GzipIndexes
    Quando descarrega índices comprimidos em gzip (Pacotes, Fontes ou Traduções), mantêm-os localmente comprimidos em gzip em vez de os desempacotar. Isto poupa imenso espaço no disco à custa de mais pedidos à CPU quando constrói as caches de pacotes locais. Falso por predefinição.

Languages
    A subsecção Languages controla quais ficheiros Translation são descarregados e em que ordem o APT tenta mostrar as traduções das descrições. O APT irá tentar mostrar a primeira descrição disponível para a linguagem que está listada em primeiro. As linguagens podem ser definidas com os seus códigos de linguagem curtos ou longos. Note que nem todos os arquivos disponibilizam ficheiros Translation para todas as linguagens - os códigos de linguagem longos são especialmenteraros.

    A lista predefinida inclui "environment" e "en". "environment" tem um significado especial aqui: será substituída em tempo de execução por códigos de linguagem extraídos a partir da variável de ambiente LC_MESSAGES. Também irá assegurar que estes códigos não são incluídos duas vezes na lista. Se LC_MESSAGES estiver definida para "C" apenas o ficheiro Translation-en será usado (se disponível). Para forçar o apt a não usar nenhum ficheiro de tradução use a definição Acquire::Languages=none. "none" é outro código de significado especial que irá parar a procura por um ficheiro Translation apropriado. Isto diz ao APT para também descarregar estes ficheiros sem realmente os usar a menos que o ambiente especifique as linguagens. Portanto o seguinte exemplo de configuração irá resultar na ordem "en, de" num ambiente em Inglês e "de, en" num ambiente em Alemão. Note que o "fr" é descarregado, mas não é usado a menos que o APT seja usado num ambiente em Francês (onde a ordem deveria ser "fr, de, en".

        Acquire::Languages { "environment"; "de"; "en"; "none"; "fr"; };

    Nota: Para prevenir problemas resultantes do APT ser executado em ambientes diferentes (ex. por diferentes utilizadores ou por outros programas) todos os ficheiros de Tradução que se encontram em /var/lib/apt/lists/ serão adicionados ao final da lista (após um "none" implícito).

DIRECTóRIOS

A secção Dir::State tem directórios que pertencem à informação de estado local. lists é o directório para colocar listas de pacotes descarregadas e status é o nome do ficheiro de estado do dpkg(1). preferences é o nome do ficheiro preferences do APT. Dir::State contém o directório predefinido para pré-fixar em todos os sub-items que não começam com / ou ./.

Dir::Cache contém localizações pertencentes a informação da cache local, como as caches de dois pacotes srcpkgcache e pkgcache assim como a localização onde colocar arquivos descarregados, Dir::Cache::archives. A geração de caches pode ser desligada ao definir os seus nomes para uma string vazia. Isto irá abrandar o arranque mas poupar espaço em disco. Provavelmente é preferível desligar o pkgcache em vez do srcpkgcache. Tal como Dir::State o directório predefinido é contido em Dir::Cache

Dir::Etc contém a localização dos ficheiros de configuração, sourcelist fornece a localização da sourcelist e main é o ficheiro da configuração predefinida (definição não tem efeito, a menos que seja feita a partir do ficheiro de configuração especificado por APT_CONFIG).

A definição Dir::Parts lê todos os fragmentos de configuração em ordem léxica a partir do directório especificado. Após isto estar feito então é carregado o ficheiro de configuração principal.

Programas binários são apontados por Dir::Bin. Dir::Bin::Methods especifica a localização dos manipuladores do método e de gzip, bzip2, lzma, dpkg, apt-get dpkg-source dpkg-buildpackage e apt-cache especifica a localização dos respectivos programas.

O item de configuração RootDir tem um significado especial. Se definido, todos os caminhos em Dir:: serão relativos a RootDir, mesmo caminhos que estão absolutamente especificados. Então, por exemplo, se RootDir estiver definido para /tmp/staging e Dir::State::status estiver definido para /var/lib/dpkg/status, então o ficheiro status será procurado em /tmp/staging/var/lib/dpkg/status.

A lista Ignore-Files-Silently pode ser usada para especificar quais os ficheiros que o APT deve ignorar em silêncio enquanto analisa os ficheiros nos directórios de fragmento. Por predefinição que termine com .disabled, ~, .bak ou .dpkg-[a-z]+ é ignorado em silêncio. Como visto no último valor predefinido, estes padrões podem usar sintaxe de expressão regular.

APT EM DSELECT

Quando o APT é usado com um método dselect(1), várias directivas de configuração controlam o comportamento predefinido. Estas estão na secção DSelect.

Clean
    Modo Cache Clean: este valor deve ser um de always, prompt, auto, pre-auto e never. always e prompt irão remover todos os pacotes da cache após a actualização, prompt (a predefinição) fá-lo condicionalmente. auto apenas aqueles pacotes que já não podem ser descarregados (por exemplo, substituídos por uma nova versão). pre-auto executa esta acção antes de descarregar novos pacotes.

options
    O conteúdo desta variável é passado ao apt-get(8) como opções de linha de comandos quando é corrido para a fase de instalação.

Updateoptions
    O conteúdo desta variável é passado ao apt-get(8) como opções de linha de comandos quando é executado para a fase de actualização.

PromptAfterUpdate
    Se for verdadeira a operação [U]pdate no dselect(1) irá sempre avisar para continuar. A predefinição é avisar apenas em caso de erro.

COMO O APT CHAMA O DPKG(1)

Várias directivas de configuração controlam como o APT invoca o invokes dpkg(1). Estas estão na secção DPkg.

options
    Isto é uma lista de opções para passar ao dpkg(1). As opções têm de ser especificadas usando a notação de lista e cada item da lista é passado como um argumento único ao dpkg(1).

Pre-Invoke, Post-Invoke
    Isto é uma lista de comandos shell para executar antes/após invocar o dpkg(1). Tal como as opções isto tem que ser especificado em notação listada. Os comandos são invocados em ordem usando /bin/sh, caso algum deles falhe, o APT irá abortar.

Pre-Install-Pkgs
    Isto é uma lista de comandos shell para executar antes de invocar o dpkg(1). Tal como as opções isto tem que ser especificado em notação listada. Os comandos são invocados em ordem usando /bin/sh, caso algum deles falhe, o APT irá abortar. O APT irá passar para os comandos os nomes de ficheiros de todos os ficheiros .deb que vai instalar, um por cada linha na entrada standard.

    A versão 2 deste protocolo despeja mais informação, incluindo a versão de protocolo, o espaço de configuração do APT e os pacotes, ficheiros e versões que foram alteradas. A versão 2 é activada ao definir DPkg::Tools::options::cmd::Version a 2. cmd é um comando dado ao Pre-Install-Pkgs.

Run-Directory
    O APT muda para este directório (chdir) antes de invocar o dpkg(1), a predefinição é /.

Build-options
    Estas opções são passadas ao dpkg-buildpackage(1) quando compila pacotes, a predefinição é desactivar a assinatura e produzir todos os binários.

  Utilização trigger do dpkg (e opções relacionadas)

O APT pode chamar o dpkg(1) num tal modo que o deixa fazer uso agressivo dos triggers sobre múltiplas chamadas do dpkg(1). Sem mais opções o dpkg(1) irá usar triggers uma vez por cada vez que corre. Activando estas opções pode portanto diminuir o tempo necessário para executar a instalação ou actualização. Note que é intenção futura activar estas opções por predefinição, mas como muda drasticamente a maneira como o APT chama o dpkg(1), precisa de muitos mais testes. Estas opções são portanto presentemente experimentais e não deve ser usadas em ambientes produtivos. Também interrompe o relatório de progresso de modo que todos os front-ends irão permanecer a cerca de metade (ou mais) do tempo no estado de 100% enquanto na realidade está a configurar todos os pacotes.

Note que não é garantido que o APT irá suportar estas opções ou que estas opções não irão causar (grandes) problemas no futuro. Se você compreendeu os riscos e problemas actuais com estas opções, mas tem coragem suficiente para ajudar a testá-la, crie um novo ficheiro de configuração e teste uma combinação de opções. Por favor reporte quaisquer bugs, problemas e melhoramentos que encontre e certifique-se de anotar nos seus relatórios quais as opções que usou. Pedir ajuda ao dpkg(1) também pode ser útil para propósitos de depuração, veja ex. dpkg --audit. Uma combinação de opções defensiva seria

    DPkg::NoTriggers "true";
    PackageManager::Configure "smart";
    DPkg::ConfigurePending "true";
    DPkg::TriggersPending "true";

DPkg::NoTriggers
    Adiciona a bandeira 'no triggers' a todas as chamadas do dpkg(1) (excepto a chamada ConfigurePending). Veja dpkg(1) se está interessado no que isto realmente representa. Em resumo: o dpkg(1) não irá correr os triggers quando esta bandeira está presente a menos que seja explicitamente chamado a fazê-lo numa chamada extra. Note que esta opção existe (não documentada) também em versões mais antigas do APT com um significado ligeiramente diferente: Anteriormente esta opção apenas acrescentava --no-triggers às chamadas configure para o dpkg(1) - agora o APT irá adicionar esta bandeira também às chamadas unpack e remove.

PackageManager::Configure
    Valores válidos são "all", "smart" e "no". O valor predefinido é "all" que faz com que o APT configure todos os pacotes. O modo "smart" serve para configurar apenas pacotes que precisam de ser configurados antes que outro pacote possa ser desempacotado (pré-dependências) e o resto configurado pelo dpkg(1) com uma chamada gerada pela opção ConfigurePending (veja em baixo). Por outro lado, "no" não irá configurar nada e confiar no dpkg(1) para configurações (o que de momento irá falhar se encontrar uma pré-dependência). Definir esta opção para qualquer valor que diferente de all irá também implicitamente activar a próxima opção predefinida caso contrário o sistema poderia acabar num estado não configurado onde potencialmente poderia não arrancar.

DPkg::ConfigurePending
    Se esta opção for definida, o APT irá chamar dpkg --configure --pending para permitir ao dpkg(1) lidar como todas as configurações e triggers requisitados. Esta opção é activada automaticamente por predefinição se a opção anterior não for definida para all, mas desactivá-la pode ser útil se deseja correr o APT múltiplas vezes numa fila - ex. numa instalação. Nestes cenários você pode desactivar esta opção em todas excepto na última execução.

DPkg::TriggersPending
    Útil para configuração smart, pois um pacote que tenha triggers pendentes não é considerado como installed e o dpkg(1) trata-o como actualmente unpacked o que é um modo de lidar com pré-dependências (veja debbugs #526774). Note que isto irá processar todos os triggers, e não apenas os triggers necessários para configurar este pacote.

OrderList::Score::Immediate
    Os pacotes essenciais ( e as suas dependências) deve ser configurados imediatamente após a descompactação. Será uma boa ideia fazer isto bem cedo no processo de actualização pois estas chamadas de configuração também requerem actualmente DPkg::TriggersPending o que irá correr alguns triggers (que talvez não sejam necessários). Os essenciais obtêm por predefinição uma pontuação alta mas a bandeira 'imediato' é relativamente baixa (um pacote que tenha uma pré-dependência tem pontuação mais alta). Esta opção e as outras no mesmo grupo podem ser usadas para alterar a pontuação. O exemplo seguinte mostra as definições que são valores predefinidos.

        OrderList::Score {
        	Delete 500;
        	Essential 200;
        	Immediate 10;
        	PreDepends 50;
        };

OPçõES PERIODIC E ARCHIVES

Os grupos de opções APT::Periodic e APT::Archives configuram o comportamento das actualizações periódicas do APT, o que é feito pelo script /etc/cron.daily/apt. Veja o cabeçalho deste script para uma breve documentação das suas opções.

OPçõES DE DEPURAçãO

Activar opções na secção Debug:: irá causar o envio de informação de depuração para o fluxo de erros standard do programa utilizando as bibliotecas do apt, ou activar modos especiais do programa que são principalmente úteis para depurar o comportamento do apt. A maioria destas opções não têm interesse para o utilizador normal, mas algumas podem ter:

    • Debug::pkgProblemResolver activa mensagens na saída acerca das decisões tomadas por dist-upgrade, upgrade, install, remove, purge.

    • Debug::NoLocking desactiva o bloqueio de todos os ficheiros. Isto pode ser usado para executar algumas operações (por exemplo, apt-get -s install) como um utilizador não root.

    • Debug::pkgDPkgPM escreve a linha de comandos actual de cada vez que o apt invoca o dpkg(1).

    • Debug::IdentCdrom desactiva a inclusão de dados statfs em IDs de CD-ROM.

Segue-se uma lista completa de opções de depuração para o apt.

Debug::Acquire::cdrom
    Escreve informação relacionada com o acesso a fontes de cdrom://.

Debug::Acquire::ftp
    Escreve informação relacionada com o descarregamento de pacotes usando FTP.

Debug::Acquire::http
    Escreve informação relacionada com o descarregamento de pacotes usando HTTP.

Debug::Acquire::https
    Escreve informação relacionada com o descarregamento de pacotes usando HTTPS.

Debug::Acquire::gpgv
    Escreve informação relacionada com a verificação de assinaturas criptográficas usando gpg.

Debug::aptcdrom
    Escreve informação acerca do processo de aceder a colecções de pacotes armazenados em CD-ROMs.

Debug::BuildDeps
    Descreve os processos de resolver dependências de compilação no apt-get(8).

Debug::Hashes
    Escreve cada hash criptográfico que é gerado pelas bibliotecas do apt.

Debug::IdentCDROM
    Não inclui informação de statfs, nomeadamente o número de blocos usados e livres no sistema de ficheiros do CD-ROM, quando gera um ID para um CD-ROM.

Debug::NoLocking
    Desactiva o bloqueio de todos os ficheiros. Por exemplo, isto irá permitir o funcionamento de duas instâncias do “apt-get update” ao mesmo tempo.

Debug::pkgAcquire
    Regista no log quando os items são adicionados ou removidos da fila de download global.

Debug::pkgAcquire::Auth
    Escreve mensagens de estado e erros relacionados com a verificação de checksums e assinaturas criptográficas dos ficheiros descarregados.

Debug::pkgAcquire::Diffs
    Escreve informação acerca do download e aplicação de diffs de lista de índice do pacote, e erros relacionados com as diffs de lista de índice do pacote.

Debug::pkgAcquire::RRed
    Escreve informação relacionada com a aplicação de patch na lista de pacotes do apt quando se descarrega diffs de índice em vez de índices completos.

Debug::pkgAcquire::Worker
    Regista todas as interacções com os sub-processos que realmente executam os downloads.

Debug::pkgAutoRemove
    Regista no log eventos relacionados com o estado instalado-automaticamente de pacotes e com a remoção de pacotes não utilizados.

Debug::pkgDepCache::AutoInstall
    Gera mensagens de depuração descrevendo quais pacotes estão a ser instalados automaticamente para resolver dependências. Isto corresponde ao passo de instalação-automática inicial executado em, ex, apt-get install, e não ao resolvedor de dependências total do apt; veja Debug::pkgProblemResolver para isso.

Debug::pkgDepCache::Marker
    Gera mensagens de depuração descrevendo qual pacote está marcado como manter/instalar/remover enquanto o "solucionador-de-problemas" faz o seu trabalho. Cada adição ou remoção pode activar acções adicionais; elas são mostradas indentadas dois espaços adicionais sob da entrada original. O formato de cada linha é MarkKeep, MarkDelete ou MarkInstall seguido por package-name <a.b.c -> d.e.f | x.y.z> (secção) onde a.b.c é a versão actual do pacote, d.e.f é a versão considerada para instalação e x.y.z é a versão mais recente, mas não considerada para instalação (devido a baixa pontuação). Os dois últimos podem ser omitidos se não existir nenhum ou for a mesma versão que aquela instalada. section é o nome da secção onde o pacote aparece.

Debug::pkgDPkgPM
    Ao invocar o dpkg(1), escreve com precisão a linha de comandos com a qual está a ser invocado, com argumentos separados por um caractere de espaço único.

Debug::pkgDPkgProgressReporting
    Escreve todos os dados recebidos do dpkg(1) no descritor de ficheiro de estado e quaisquer erros encontrados enquanto os analisa.

Debug::pkgOrderList
    Gera um rastro do algoritmo que decide a ordem na qual o apt deve passar os pacotes ao dpkg(1).

Debug::pkgPackageManager
    Escreve mensagens de estado seguindo os passos executados quando invoca o dpkg(1).

Debug::pkgPolicy
    Escreve a prioridade da cada lista de pacote no arranque.

Debug::pkgProblemResolver
    Rastreia a execução do resolvedor de dependências (isto só se aplica ao que acontece quando é encontrado um problema de dependências complexo).

Debug::pkgProblemResolver::ShowScores
    Mostra uma lista de todos os pacotes instalados com as suas pontuações calculadas usadas pelo pkgProblemResolver. A descrição do do pacote é a mesma que é descrita em Debug::pkgDepCache::Marker

Debug::sourceList
    Escreve informação acerca dos fornecedores lida de /etc/apt/vendors.list.

EXEMPLOS

/usr/share/doc/apt/examples/configure-index.gz é um ficheiro de configuração que mostra valores exemplo para todas as opções possíveis.

FICHEIROS

/etc/apt/apt.conf
    Ficheiro de configuração do APT. Item de Configuração: Dir::Etc::Main.

/etc/apt/apt.conf.d/
    Ficheiros de configuração fragmentados do APT. Item de Configuração: Dir::Etc::Parts.

VEJA TAMBéM

apt-cache(8), apt-config(8), apt_preferences(5).

BUGS

página 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).

TRADUÇÂO

A tradução Portuguesa foi feita por Américo Monteiro <a_monteiro@netcabo.pt> de 2009 a 2012. A tradução foi revista pela equipa de traduções portuguesas da Debian <traduz@debianpt.org>.

Note que este documento traduzido pode conter partes não traduzidas. Isto é feito propositadamente, para evitar perdas de conteúdo quando a tradução está atrasada relativamente ao conteúdo original.

AUTORES

Jason Gunthorpe

Equipa do APT

Daniel Burrows <dburrows@debian.org>
    Documentação inicial do Debug::*.

NOTAS

1.  página de bugs do APT
    http://bugs.debian.org/src:apt