SOURCES.LIST(5)

NOME
sources.list - Lista das fontes de dados APT configuradas

DESCRIÇÃO

A lista de fontes /etc/apt/sources.list e os ficheiros contidos em /etc/apt/sources.list.d/ estão desenhados para suportar qualquer número de fontes activas e uma variedade de meios de fontes. Os ficheiros listam uma fonte por linha (estilo-uma-linha) ou contêm múltiplas estrofes definindo uma ou mais fontes por estrofe (estilo deb822), com a fonte de maior preferência listada em primeiro lugar (no caso de uma versão única estar disponível a partir de mais do que uma fonte). A informação disponível a partir das fontes configuradas é obtida pelo apt-get update (ou por um comando equivalente de outro front-end do APT).

SOURCES.LIST.D

O directório /etc/apt/sources.list.d disponibiliza um modo de adicionar entradas na sources.list em ficheiros separados. São permitidos dois formatos diferentes de ficheiro como descrito nas próximas duas secções. Os nomes de ficheiros precisam de ter ou a extensão .list ou .sources dependendo do formato contido. Os nomes dos ficheiros podem apenas conter letras (a-z e A-Z), dígitos (0-9), e os caracteres underscore (_), menos (-) e ponto (.). De outro modo o APT irá escrever um aviso de que ignorou um ficheiro, a menos que esse ficheiro coincida com um padrão na lista de configuração Dir::Ignore-Files-Silently - que neste caso serão ignorados em silêncio.

FORMATO ESTILO-UMA-LINHA

Os ficheiros neste formato têm a extensão .list. Cada linha que especifica uma fonte começa com um tipo (ex. deb-src) seguido de opções e argumentos para esse tipo. Entradas individuais não podem ser continuadas até a linha seguinte. As linhas vezias são ignoradas,e um caractere # em qualquer pondo de uma linha marca o restante da linha como um comentário. Consequentemente uma entrada pode ser desactivada ao comentar a linha inteira. Se for preciso fornecer opções, estas são separadas por espaços e elas todas juntas são posicionas entre parênteses rectos ([]) incluídos na linha após o tipo e separado dele por um espaço. Se uma opção permitir vários valores estes são separados entre eles com uma vírgula (,). Um nome de opção é separado do(s) seu(s) valor(es) por um sinal de igual (=). Opções de multi-valor também têm -= e += como separadores, os quais em vez de substituir a predefinição pelos valor(es) fornecidos modificam os valor(es) predefinidos para remover ou incluir os valores fornecidos.

Este é o formato tradicional e suportado por todas as versões do apt. Note que nem todas as opções descritas abaixo são suportadas por todas as versões do apt. Note também que algumas aplicações mais antigas que analisem este formato por si mesmas podem não esperar encontrar opções pois estas não eram comuns antes da introdução do suporte a multi-arquitecturas.

FORMATO ESTILO-DEB822

Os ficheiros neste formato têm a extensão .sources. O formato é semelhante em sintaxe a outros ficheiros usados por Debian e seus derivados, tais como os ficheiros de meta-dados que o apt irá descarregar das fontes configuradas ou o ficheiro debian/control de um pacote fonte Debian. As entradas individuais são separadas por uma linha vazia; as linha vazias adicionais são ignoradas, e um caractere # no inicia da linha marca a linha inteira como um comentário. Uma entrada pode assim ser desactivada ao comentar cada linha que pertence à estrofe, mas é geralmente mais fácil adicionar o campo "Enabled: no" à estrofe para desactivar a entrada. Removendo o campo ou defini-lo para "yes" volta a activá-la. As opções têm a mesma sintaxe que todos os outros campos. Um nome de campo é separado por dois pontos (:) e opcionalmente por espaços dos seus valor(es). Note especialmente que múltiplos valores são separados por espaços em branco (como espaços, tabs e novas-linhas), não por vírgulas como no formado de uma-linha. Os campos de multi-valor como Architectures também têm Architectures-Add e Architectures-Remove para modificar o valor predefinido em vez de o substituir.

Este é um novo formato suportado pelo apt desde versão 1.1. As versões anteriores ignoravam tais ficheiros com uma mensagem descrita antes. É objectivo tornar gradualmente este formato no formato predefinido, descontinuando o anteriormente descrito formato de estilo-uma-linha, pois é mais fácil de criar, aumentar e modificar para as pessoas e para as máquinas especialmente se estiverem envolvidas muitas fontes e/ou opções. Os desenvolvedores que estão a trabalhar com e/ou a analisar fontes do apt são altamente encorajados a adicionar suporte a este formato e a contactar a equipa do APT para coordenar e partilhar este trabalho. Os utilizadores podem já livremente adoptar este formato, mas podem encontrar problemas com software que ainda não suporte o formato.

OS TIPOS DEB E DEB-SRC: FORMATO GERAL

O tipo deb descreve um arquivo Debian típico de dois níveis, distribution/component. A distribution é geralmente um nome de uma suite como stable ou testing ou um nome de código como buster ou bullseye enquanto que componente é um de main, contrib ou non-free. O tipo deb-src faz referência a um código fonte de distribuição Debian no mesmo formato que o tipo deb. É necessária uma linha deb-src para obter índices das fontes.

O formato para duas entradas estilo-uma-linha usando os tipos deb e deb-src é:

    deb [ option1=value1 option2=value2 ] uri suite [component1] [component2] [...]
    deb-src [ option1=value1 option2=value2 ] uri suite [component1] [component2] [...]

Em alternativa, a entrada equivalente em estilo deb822 parece-se com isto:

         Types: deb deb-src
         URIs: uri
         Suites: suite
         Components: [component1] [component2] [...]
         option1: value1
         option2: value2

O URI para o tipo deb tem de especificar a base da distribuição Debian, a partir do qual o APT irá encontrar a informação que precisa. suite pode especificar um caminho exacto, que no caso os componente têm de ser omitidos e suite deve terminar com uma barra (/). Isto é útil para o caso de apenas ser de interesse um sub-directório particular do arquivo denotado pelo URI. Se suite não especificar um caminho exacto, pelo menos um component tem de estar presente.

suite também pode conter uma variável. $(ARCH) a qual se expande à arquitectura Debian (tal como amd64 ou armel) usada no sistema. Isto permite que seja usados ficheiros sources.list independentes da arquitectura. Em geral, isto é apenas de interesse quando se especifica um caminho exacto; de outro modo o APT irá gerar automaticamente um URI com a arquitectura actual.

Especialmente no formato de estilo uma-linha como apenas pode ser especificada por linha uma distribuição, pode ser necessário ter várias linhas para o mesmo URI, se só for desejado um sub-conjunto de todas as distribuições e componentes dessa localização. O APT irá ordenar a lista de URI após ter gerado internamente um conjunto completo, e irá desabar as várias referências à mesma máquina na Internet, por exemplo, numa única ligação, para que não estabeleça uma ligação ineficiente, a feche, faça outra coisa, e depois volte a estabelecer ligação à mesma máquina. O APT também paraleliza ligações a máquinas diferentes para lidar mais eficientemente com sites com largura de banda baixa.

É importante listar as fontes por ordem de preferência, com a fonte mais preferida listada em primeiro lugar. Tipicamente isto irá resultar numa ordenação por velocidades desde o mais rápido até ao mais lento (CD-ROM seguido por máquinas numa rede local, seguido por máquinas distantes na Internet, por exemplo).

Como um exemplo, as fontes da sua distribuição podem-se parecer com isto no formato estilo uma-linha:

    deb http://us.archive.ubuntu.com/ubuntu focal main restricted
    deb http://security.ubuntu.com/ubuntu focal-security main restricted
    deb http://us.archive.ubuntu.com/ubuntu focal-updates main restricted

ou com isto no formato estilo deb822:

    Types: deb
    URIs: http://us.archive.ubuntu.com/ubuntu
    Suites: focal focal-updates
    Components: main restricted
    Types: deb
    URIs: http://security.ubuntu.com/ubuntu
    Suites: focal-security
    Components: main restricted

OS TIPOS DEB E DEB-SRC: OPÇÕES

Cada entrada de fonte pode ter opções especificas para modificar qual fonte é acedida e como os dados são adquiridos dela. O formato, sintaxe e nomes das opções varia entre os formatos de estilo-uma-linha e estilo-deb822 como descrito, mas estes não têm as mesmas opções disponíveis. Para simplificar listamos o nome-de-campo deb822 e disponibilizamos o nome de uma-linha entre parênteses. Lembre-se que além de definir explicitamente opções de multi-valor, existe também a opção de modificá-os com base na predefinição, mas não estamos a listar explicitamente esses nomes aqui. As opções não suportadas são ignoradas em silêncio por todas as versões do APT.

    • Architectures (arch) é uma opção multi-valor que define para quais arquitecturas deve ser descarregada a informação. Se esta opção não for definida é todas as arquitecturas como definido pela opção de configuração APT::Architectures.

    • Languages (lang) é uma opção multi-valor que define para quais linguagens deve ser descarregada informação tal como as descrições de pacotes traduzidas. Se esta opção for definida a predefinição é todas as linguagens como definido pela opção de configuração Acquire::Languages.

    • Targets (target) é uma opção multi-valor que define quais alvos de download o apt irá tentar adquirir a partir desta fonte. Se não for especificado, o valor predefinido é definido pelo scope de configuração Acquire::IndexTargets (os alvos são especificados pelo seu nome no campo Created-By). Adicionalmente, pode-se activar ou desactivar alvos ao usar campo Identifier como uma opção com um valor booleano em vez de se usar esta opção multi-valor.

    • PDiffs (pdiffs) é um valor sim/não que controla se o APT deve tentar usar PDiffs para actualizar índices antigos em vez de descarregar totalmente novos índices. O valor desta opção é ignorado se o repositório não anunciar a disponibilidade de PDiffs. Usa por predefinição o valor da opção com o mesmo nome para um ficheiro índice específico definido no scope Acquire::IndexTargets, o qual usa por predefinição o valor da opção de configuração Acquire::PDiffs o qual usa por predefinição yes.

    • By-Hash (by-hash) pode ter o valor yes, no ou force e controlam se o APT deve tentar obter índices via um URL construído a partir de um hashsum do ficheiro esperado em vez de usar um nome de ficheiro estável e bem conhecido do índice. Usar isto pode evitar erros de correspondência de hashsum, mas requer um mirror que suporte. Um valor yes ou no activa/desactiva o uso desta funcionalidade se esta fonte indicar suporte para tal, enquanto force irá activar a funcionalidade independentemente do que a fonte indique. Recorre à predefinição do valor da opção com o mesmo nome para um ficheiro index específico definido no scope Acquire::IndexTargets, que o próprio usa por predefinição o valor da opção de configuração Acquire::By-Hash a qual é predefinida para yes.

Mais ainda, existem opções que se definidas afectam todas as fontes com o mesmo URL e Suite, então elas têm de ser definidas em todas as tais entradas e não podem variar entre componentes diferentes. O APT irá tentar detectar e terminar em erro em tais anomalias.

    • Allow-Insecure (allow-insecure), Allow-Weak (allow-weak) e Allow-Downgrade-To-Insecure (allow-downgrade-to-insecure) são valores booleanos os todos são predefinidos com no. Se definidos para yes eles contornam partes de apt-secure(8) e por isto não devem ser usados de forma leviana!

    • Trusted (trusted) é um valor de três estados o qual é predefinido para o APT decidir se uma fonte é de confiança ou se levem ser activados avisos antes de, por ex, pacotes serem instalados a partir dessa fonte. Esta opção pode ser usada para sobrepor essa decisão. O valor yes diz ao APT que deve sempre considerar essa fonte como de confiança, mesmo que não aprove nas verificações de autenticação. Desactiva partes de apt-secure(8), e portanto apenas deve ser usada num contexto local e de confiança (e se assim for mesmo) pois caso contrário a segurança perde-se. O valor no faz o aposto, fazendo com que a fonte seja lidada como não confiável mesmo que as verificações de autenticação passem com sucesso. O valor predefinido não pode ser regulado explicitamente.

    • Signed-By (signed-by) é uma opção para requerer a um repositório para passar a verificação apt-secure(8) com um certo conjunto de chaves em vez das chaves de tudo confiança que o apt tem configurado. É especificada como uma lista de caminhos absolutos para ficheiros de chaveiro (têm de estar acessíveis e legíveis para o utilizador do sistema _apt, portanto assegure que todos têm permissões de leitura ao ficheiro) e impressões digitais de chaves para seleccionar a partir destes chaveiros. Se não forem especificados nenhuns ficheiros chaveiro, o predefinido é o chaveiro trusted.gpg e todos os chaveiros no directório trusted.gpg.d/ (veja apt-key fingerprint). Se não for especificada nenhuma impressão digital, são seleccionadas todas as chaves nos chaveiros. Uma impressão digital irá também aceitar todas as assinaturas por uma sub-chave dessa chave. Se isto não for desejado pode ser adicionado um ponto de exclamação (!) à impressão digital para desactivar este comportamento. A opção usa por predefinição o valor da opção com o mesmo nome se for definida no ficheiro Release previamente adquirido deste repositório (apenas impressões digitais podem ser especificadas lá totalmente). Caso contrário, todas as chaves nos chaveiros de confiança são consideradas assinantes válidos para este repositório.

    • Check-Valid-Until (check-valid-until) é um valor yes/no que controla se o APT deverá tentar detectar ataques de repetição. Um criador de repositório pode declarar uma hora limite para os dados disponibilizados no repositório serem considerados como válidos, e se esta hora for atingida, e nenhuns novos dados forem fornecidos, os dados são considerados expirados e é provocado um erro. Para além de aumentar a segurança, pois um atacante malicioso não pode enviar dados antigos eternamente para impedir um utilizador de actualizar para uma nova versão, isto também ajuda os utilizadores a identificar mirrors que não estão mais actualizados. No entanto, alguns repositórios tais como os arquivos históricos que não são mais actualizados propositadamente, assim esta verificação pode ser desactivada ao definir esta opção para no. Usa por predefinição o valor da opção de configuração Acquire::Check-Valid-Until a qual ela própria usa por predefinição yes.

    • Valid-Until-Min (valid-until-min) e Valid-Until-Max (valid-until-max) podem ser usadas para elevar ou baixar o período de tempo em segundos no qual os dados deste repositório são considerados válidos. -Max pode ser especialmente útil para definir o sue próprio valor se o repositório não disponibilizar um campo Valid-Until no seu ficheiro Release, enquanto -Min pode ser usado para aumentar o tempo válido em mirrors raramente actualizados (locais) de um arquivo mais frequentemente actualizado mas menos acessível (o qual está também em sources.list) em vez de desactivar completamente a verificação. Usa por predefinição o valor das opções de configuração Acquire::Min-ValidTime and Acquire::Max-ValidTime que estão ambas não definidas por predefinição.

    • Check-Date (check-date) é um valor yes/no que controla se o APT deve considerar a hora da máquina correcta e assim executar as verificações relacionadas com horas, tal como verificar que um ficheiro Release não veio do futuro. Desactivá-lo também desactiva a opção Check-Valid-Until mencionada em cima.

    • Date-Max-Future (date-max-future) controla quão longe do futuro um repositório pode estar. Usa por predefinição o valor da opção de configuração Acquire::Max-FutureTime a qual é 10 segundo por predefinição.

    • InRelease-Path (inrelease-path) determina o caminho para o ficheiro InRelease, relativamente à posição normal de um ficheiro InRelease. Por predefinição, esta opção não está definida e o APT irá tentar obter um InRelease ou, se isso falhar, um ficheiro Release e o seu ficheiro associado Release.gpg. Ao definir esta opção, será tentado o caminho especificado em vez do ficheiro InRelease, e o recurso a ficheiros Release será desactivado.

ESPECIFICAÇÃO DA URI

Os tipos de URI actualmente reconhecidos são:

http (apt-transport-http(1))
    O esquema http especifica um servidor HTTP para um arquivo e o método mais comum usado. O URI pode incluir directamente informação de login se o arquivo o requerer, mas deve ser preferível o uso de apt_auth.conf(5). O método também suporta proxies SOCKS5 e HTTP(S) sejam configurados via configuração específica do apt ou especificada pela variável de ambiente http_proxy no formato (assumindo um proxy HTTP que requer autenticação) http://user:pass@server:port/. Os detalhes de autenticação para proxies também pode ser fornecidos via apt_auth.conf(5).

    Note que estas formas de autenticação são inseguras pois toda a comunicação com o servidor remoto (ou proxy) não está encriptada, portanto um atacante suficientemente capaz pode observar e guarda o login assim como todas as outras interacções. O atacante pode não pode modificar a comunicação totalmente pois o modelo de segurança de dados do APT é independente do método de transporte escolhido. Veja apt-secure(8) para mais detalhes.

https (apt-transport-https(1))
    O esquema https especifica um servidor HTTPS para um arquivo e é muito semelhante em utilização e opções disponíveis ao esquema http. A principal diferença é que a comunicação entre o apt e o servidor (ou proxy) é encriptada. Note que a encriptação não previne um atacante de saber com qual servidor (ou proxy) o apt está a comunicar e com uma análise mais profunda pode potencialmente ainda revelar que dados estão a ser descarregados. Se isto for preocupante, os esquemas baseados em Tor mencionados mais abaixo podem ser uma alternativa apropriada.

mirror, mirror+esquema (apt-transport-mirror(1))
    O esquema mirror especifica a localização de uma mirrorlist. Por predefinição o esquema usado para a localização é http, mas pode ser usado qualquer outro esquema via mirror+esquema. A própria mirrorlist pode conter vários URIs diferentes para mirrors que o cliente do APT pode transparentemente pegar, escolher e recorrer entre os pretendentes para ajudar tanto com a distribuição da carga sobre os mirrors disponíveis e assegurando que os clientes podem adquirir dados mesmo que alguns dos mirrors configurados não estejam disponíveis.

file
    O esquema file permite que um directório arbitrário do sistema de ficheiros seja considerado um arquivo. Isto é útil para montagens NFS e mirrors ou arquivos locais.

cdrom
    O esquema cdrom permite ao APT usar uma drive de CD-ROM, DVD ou caneta USB local com mudança de media. Use o programa apt-cdrom(8) para criar entradas cdrom na lista de fontes.

ftp
    O esquema ftp especifica um servidor FTP para um arquivo. O uso de FTP está em declínio em favor de http e https e muitos arquivos ou nunca ofereceram ou estão a retirar o acesso FTP. Se você ainda precisa deste método, estão disponíveis muitas opções de configuração no escopo Acquire::ftp e detalhadas em apt.conf(5).

    Por favor note que pode ser especificado um proxy FTP ao usar a variável de ambiente ftp_proxy. É possível especifica um proxy HTTP (os servidores proxy HTTP geralmente compreendem URLs de FTP) usando esta variável de ambiente e apenas esta variável de ambiente. Os proxies que usam HTTP especificados no ficheiro de configuração serão ignorados.

copy
    O esquema copy é idêntico ao esquema file com a excepção que os pacotes são copiados para o directório cache em vez serem usados directamente da sua localização. Isto é útil para quem use um meio amovível para copiar ficheiros com o APT.

rsh, ssh
    O método rsh/ssh invoca RSH/SSH a ligar a uma máquina remota e aceder a ficheiros como um dado utilizador. É recomendada a configuração prévia de rhosts ou chaves RSA. Os comandos standard find e dd são usados para executar as transferências de ficheiros a partir da máquina remota.

adicionando mais tipos de URI reconhecíveis
    O APT pode ser estendido com mais métodos lançados em outros pacotes opcionais, que devem seguir o esquema de nomeação apt-transport-método. Por exemplo, a equipa do APT também mantém o pacote apt-transport-tor, o qual disponibiliza métodos de acesso para URIs de HTTP e HTTPS com rota via rede Tor.

EXEMPLOS

Usa o arquivo armazenado localmente (ou montagem NFS) em /home/apt/debian para stable/main, stable/contrib, e stable/non-free.

    deb file:/home/apt/debian stable main contrib non-free

    Types: deb
    URIs: file:/home/apt/debian
    Suites: stable
    Components: main contrib non-free

Como em cima, excepto que usa a distribuição unstable (de desenvolvimento).

    deb file:/home/apt/debian unstable main contrib non-free

    Types: deb
    URIs: file:/home/apt/debian
    Suites: unstable
    Components: main contrib non-free

Especificação de fontes para o referido acima.

    deb-src file:/home/apt/debian unstable main contrib non-free

    Types: deb-src
    URIs: file:/home/apt/debian
    Suites: unstable
    Components: main contrib non-free

A primeira linha obtém a informação do pacote para a arquitectura em APT::Architectures enquanto a segunda obtém sempre amd64 e armel.

    deb http://deb.debian.org/debian buster main
    deb [ arch=amd64,armel ] http://deb.debian.org/debian buster main

    Types: deb
    URIs: http://deb.debian.org/debian
    Suites: buster
    Components: main
    Types: deb
    URIs: http://deb.debian.org/debian
    Suites: buster
    Components: main
    Architectures: amd64 armel

Usa HTTP para aceder ao arquivo em archive.debian.org, e usa apenas a área hamm/main.

    deb http://archive.debian.org/debian-archive hamm main

    Types: deb
    URIs: http://archive.debian.org/debian-archive
    Suites: hamm
    Components: main

Usa FTP para aceder ao arquivo em ftp.debian.org, sob o directório debian, e usa apenas a área buster/contrib.

    deb ftp://ftp.debian.org/debian buster contrib

    Types: deb
    URIs: ftp://ftp.debian.org/debian
    Suites: buster
    Components: contrib

Usa FTP para aceder ao arquivo em ftp.debian.org, sob o directório debian, e usa apenas a área unstable/contrib. Se esta linha aparecer também como aquela no exemplo anterior em sources.list será usada uma única sessão FTP para ambas linhas de recurso.

    deb ftp://ftp.debian.org/debian unstable contrib

    Types: deb
    URIs: ftp://ftp.debian.org/debian
    Suites: unstable
    Components: contrib

Usa HTTP para aceder ao arquivo em ftp.tlh.debian.org, sob o directório universe, e usa apenas os ficheiros encontrados sob unstable/binary-i386 em máquinas i386, unstable/binary-amd64 em amd64, e assim por diante para outras arquitecturas suportadas. [Note que este exemplo apenas mostra como usar a variável de substituição; os arquivos oficiais debian não estão estruturados assim]

    deb http://ftp.tlh.debian.org/universe unstable/binary-$(ARCH)/

    Types: deb
    URIs: http://ftp.tlh.debian.org/universe
    Suites: unstable/binary-$(ARCH)/

Usa HTTP para obter pacotes binários assim como fontes a partir das suites stable, testing e unstable e os componentes main e contrib.

    deb http://deb.debian.org/debian stable main contrib
    deb-src http://deb.debian.org/debian stable main contrib
    deb http://deb.debian.org/debian testing main contrib
    deb-src http://deb.debian.org/debian testing main contrib
    deb http://deb.debian.org/debian unstable main contrib
    deb-src http://deb.debian.org/debian unstable main contrib

    Types: deb deb-src
    URIs: http://deb.debian.org/debian
    Suites: stable testing unstable
    Components: main contrib

VEJA TAMBÉM

apt-get(8), apt.conf(5), /usr/share/doc/apt-doc/acquire-additional-files.md.gz

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

NOTAS

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