Este transporte do APT não está por si só a implementar um protocolo para aceder a repositórios locais ou remotos, mas obtêm uma mirrorlist e redireciona todos os pedidos para os mirro(s) retirados dessa lista, acedendo a eles via outros transportes como apt-transport-http(1). A funcionalidade básica esteve disponível desde o apt 0.7.24, mas não esteve documentada até ao apt 1.6 o qual continha uma reconstrução do transporte e das suas funcionalidades suportadas. Note que um transporte nunca é chamado directamente por um utilizador mas é usado pelas ferramentas do APT com base na configuração do utilizador.
Se a aquisição de um ficheiro via um mirror falhar, o método assegura que outro mirror possível da lista é tentado automaticamente até que o ficheiro seja obtido ou não houver mais nenhum mirror na lista lidando transparentemente com servidores desligados e problemas semelhantes.
As implicações de segurança do transporte dependem das considerações de segurança associadas ao transporte usado para adquirir a mirrorlist e os transportes envolvidos no acesso ao(s) mirror(s) escolhidos pelo transporte.
Este transporte presentemente não tem opções de configuração. A selecção do mirror é inteiramente baseada nos mirrors oferecidos na mirrorlist e nos ficheiros que o APT precisa de obter.
Uma mirrorlist contêm uma ou mais linhas cada uma especificando um URI para um mirror. São ignoradas as linhas vazias e aquelas começadas com um cardinal (#). Um URI começa sempre com um esquema URI que define o transporte usado para esse mirror. Se por exemplo o URI começar com http:, o transporte responsável é apt-transport-http(1) o qual pode ter requerimentos específicos para o formato da parte restante do URI.
Podem ser fornecidos na mesma linha meta-dados acerca do mirror, separados do URI por um tab. Múltiplos itens de meta-dados podem eles próprios serem separados por tabs ou espaços. (Esta é uma funcionalidade avançada apenas disponível no apt >= 1.6. As versões anteriores do apt irão falhar ao analisar mirrorlists que usem esta funcionalidade.)
Desde o apt 1.6 que é também suportado o uso de mirrorlists comprimidas. Note que o nome do ficheiro da mirrorlist têm de especificar o algoritmo de compressão usado, não há auto-detecção baseada no conteúdo do ficheiro.
Como especificado no formato, um mirror pode ter meta-dados adicionais acrescentados para impedir que um mirror seja selecionado para obter um ficheiro que não corresponda a esses meta-dados. Deste modo a mirrorlist pode por exemplo conter mirrors parciais que servem apenas certas arquitecturas e o APT irá automaticamente escolher um mirror diferente para ficheiros que requeiram uma arquitectura não listada. São suportados limites para a arquitectura (arch), nome de código do lançamento (codename), componente do repositório onde o ficheiro está (component), linguagem a que o ficheiro se aplica (lang), nome de suite do lançamento (suite) e o tipo do ficheiro (type).
Se nenhuma prioridade for dada para um mirror via chave de meta-dados priority, a ordem em que os mirrors são contactados é aleatória. Se um certo conjunto de mirrors deve ser tentado primeiro antes de qualquer outro, pode ser explicitamente definida uma prioridade. Os mirrors com o número menor são tentados primeiro. Os mirrors que não têm prioridade explícita definida são definidos com o número mais alto possível e assim são tentados em último. A escolha entre mirrors com a mesma prioridade é de novo aleatória.
A disponibilidade e escolha dos transportes numa mirrorlist está limitada em como io cliente do APT está a aceder à mirrorlist. Se for usado um transporte local como file ou copy, a mirrorlist também pode incluir fontes locais, enquanto que uma mirrorlist acedida via http não pode. Adicionalmente, uma mirrorlist não pode conter outra mirrorlist ou outros transportes de invólucro (como apt-transport-tor). Veja a documentação destes transportes em como os usar com o método de mirror.
Note que as versões do apt anteriores a 1.6 não suportam mais nenhum transporte para além de http.
Um exemplo de mirrorlist básico suportado por todas as versões do apt com um método de mirror (>= 0.7.24) no qual o cliente irá pegar em qualquer um dos três mirrors:
Assumindo que um ficheiro com este conteúdo está armazenado em /etc/apt/mirrorlist.txt na sua máquina, pode ser usado desta maneira em sources.list(5) (desde o apt 1.6):
deb mirror+file:/etc/apt/mirrorlist.txt bullseye main
Todas as versões do método mirror suportam uma mirrorlist acessível via HTTP, portanto assumindo que está disponível em http://apt.example.org/mirror.lst a entrada sources.list de cima poderá, em vez dessa, ser escrita como:
deb mirror://apt.example.org/mirror.lst bullseye main
Note que desde o apt 1.6 que o uso de mirror+http deve ser preferido a mirror para uniformidade. A funcionalidade é a mesma.
Como explicado nas definições de formato as versões do apt anteriores a 1.6 não suportam isto e irão falhar ao analisar a mirrorlist. Este exemplo de mirrorlist é complicada intencionalmente para mostrar alguns aspectos da selecção. É assumida a seguinte configuração: O primeiro mirror é um mirror local acedido via método file, mas potencialmente incompleto. O segundo mirror tem uma boa ligação, mas é um mirror parcial pois só contém ficheiros relacionados com as arquitecturas amd64 e all. Os restantes mirrors são mirrors médios que são devem ser contactados se os anteriores não funcionarem.
file:/srv/local/debian/mirror/ priority:1 type:index http://partial.example.org/mirror/ priority:2 arch:amd64 arch:all type:deb http://ftp.us.debian.org/debian/ type:deb http://ftp.de.debian.org/debian/ type:deb https://deb.debian.org/debian/
Nesta configuração com esta mirrorlist o primeiro mirror será usado para descarregar todos os ficheiros de índice assumindo que a própria mirrorlist é acedida via transporte local como file. Se não o for, o mirror é caso contrário inacessível ou se não conter o ficheiro requisitado, será usado outro mirror para obter o ficheiro, escolhido dependendo do tipo de ficheiro. Um ficheiro index será servido pelo último mirror da lista, enquanto um pacote da arquitectura amd64 é servido pelo segundo e aqueles, por exemplo, da arquitectura i386 por um dos últimos três.
m[blue]página de bugs do APTm[][1]. Se deseja reportar um bug no APT, por favor veja /usr/share/doc/debian/bug-reporting.txt ou o comando reportbug(1).
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.
Equipa do APT