Configurando um espelho do repositório Debian

Espelhar ou não

Apreciamos todos os novos espelhos, cada futuro(a) mantenedor(a) de espelho deveria ter certeza que ele pode responder todas estas questões antes de tentar iniciar seu próprio espelho:

O que espelhar

A página principal sobre espelhos lista os repositórios disponíveis para espelhamento.

Por favor, consulte a página de tamanho do espelho para informações mais precisas sobre o tamanho dos espelhos.

O repositório debian-security/ contém as atualizações de segurança lançadas pela equipe de segurança do Debian. Apesar de soar interessante para todos(as), não recomendamos aos(as) nossos(as) usuários(as) o uso de espelhos para obter atualizações de segurança e, ao invés disso, avise para que eles(elas) baixem diretamente do nosso serviço distribuído security.debian.org. Recomendamos que o repositório debian-security não seja espelhado.

A partir de onde fazer um espelho

Note que ftp.debian.org não é um local canônico dos pacotes do Debian, em vez disso, ele é meramente um dos vários servidores que são atualizados por um servidor interno do Debian.

Existem muitos espelhos públicos que suportam rsync e isso é bom para fazer o espelhamento a partir deles. Por gentileza, utilize um espelho que esteja pŕoximo a você em termos de rede.

Você deve evitar fazer o espelhamento a partir de qualquer nome de serviço que resolva para mais de um endereço (como ftp.us.debian.org), pois isso pode causar a sincronização entre diferentes estados através de suas próprias execuções espelhadas, caso os espelhos fiquem fora de sincronia. Observe também que o HTTP é o único serviço que garantimos a existência no ftp.CC.debian.org. Se você deseja espelhar usando o rsync (utilizando o ftpsync, conforme recomendado), sugerimos que você escolha o nome do site adequado para a máquina que atualmente fornece o ftp.CC.debian.org. (Consulte o diretório /debian/project/trace deste servidor a fim de compreendê-lo).

Como fazer o espelho

O método recomendado para espelhar é usando o famoso conjunto de scripts ftpsync, disponível nessas formas:

Não utilize seus próprios scripts e não utilize rsyncs com apenas um caminho. Usar o ftpsync garante que as atualizações seja realizadas de maneira que o apt não fique confuso. Em particular, o ftpsync processa traduções, conteúdos e outros arquivos de metadados em uma ordem em que o apt não esteja executando erros de validação, dessa forma o(a) usuário(a) atualiza a lista de pacotes enquanto uma execução espelhada esteja em andamento. Além disso, também produz arquivos de rastreamento que contêm mais informações úteis para determinar se um espelho funciona, quais arquiteturas estão contidas nele e a partir de onde ele sincroniza.

Fazendo um espelho parcial

Considerando o grande tamanho dos repositórios do Debian, pode ser aconselhável espelhar apenas partes do repositório. Espelhos públicos podem conter todos as versões (testing, unstable, etc.), mas eles podem restringir o conjunto de arquiteturas que contém neles. O arquivo de configuração para ftpsync possui configurações de ARCH_EXCLUDE e ARCH_INCLUDE para essa finalidade.

Quando fazer o espelho

O repositório principal é atualizado quatro vezes por dia. Os espelhos geralmente começam a ser atualizadas em torno de 3:00, 9:00, 15:00 e 21:00 (todos os horários em UTC), mas esses não são horários fixos e você não deveria fixar seu espelho neles.

Seu espelho deve atualizar algumas horas depois dos pulsos do espelhamento do repositório principal. Você deve verificar se o site a partir do qual você está fazendo espelho tem um arquivo de registro de data no subdiretório project/trace/. O arquivo do registro de data terá o mesmo nome do site, e irá conter o horário de término da última atualização do espelho. Adicione algumas horas a esse horário (por segurança) e faça o espelho dele.

É essencial que seu espelho esteja sincronizado com o arquivo principal. Um mínimo de 4 atualizações por dia (24 horas) garantirá que seu espelho seja um verdadeiro reflexo do repositório. Por favor, entenda que espelhos que não estão sincronizados com o repositório principal não estarão na lista oficial de espelhos.

A maneira mais fácil de se ter automaticamente o espelhamento executado todos os dias é usando o cron. Veja man crontab para detalhes.

Note que se seu site for atualizado com um mecanismo push, então você não precisa se preocupar com nada disso.

Espelhamento disparado por push (Push-triggered)

Espelhamento push é uma forma de espelhamento que nós desenvolvemos para minimizar o tempo que leva para que as mudanças no repositório cheguem aos espelhos. Um espelho upstream usa um gatilho SSH que diz aos demais espelhos para se atualizarem. Para uma descrição mais detalhada de como isto funciona, porque ele é seguro, e como configurar um espelho push, veja a explicação completa.

Configurações adicionais recomendadas

Espelhos públicos devem disponibilizar o repositório Debian via HTTP em /debian.

Além disso, verifique se as listagens de diretórios estão ativadas (com os nomes completos dos arquivos) e se seguem os links simbólicos.

Se você usa Apache, algo dessa forma deve funcionar:

<Directory /path/to/your/debian/mirror>
   Options +Indexes +SymlinksIfOwnerMatch
   IndexOptions NameWidth=* +SuppressDescription
</Directory>

Como adicionar um espelho à lista de espelhos

Se você deseja que seu espelho seja listado na lista oficial de espelhos, por favor:

Uma vez que um espelho esteja configurado, ele deve ser registrado no Debian a fim de ser incluído na lista de espelhos. Pedidos podem ser realizados usando nosso formulário web simples.

Quaisquer problemas ou dúvidas podem ser enviadas para mirrors@debian.org.

Listas de discussão

Existem duas listas de discussão públicas sobre os espelhos do Debian, debian-mirrors-announce e debian-mirrors. Incentivamos todos os(as) mantenedores(as) de espelho a assinar a lista de anúncios, pois será usado para divulgação de avisos importantes. Esta lista é moderada e recebe uma baixa quantidade de tráfego. A segunda lista de discussão é destinada a discussões gerais e é aberta a todos(as).

Se você tiver alguma dúvida que não tenha sido respondida nessas páginas web, entre em contato conosco através de mirrors@debian.org ou através do IRC, #debian-mirrors em irc.debian.org.

Notas para espelhos particulares (parciais)

Se você deseja operar um espelho apenas para o seu próprio local, e precisa conter apenas um subconjunto de versões (como a stable), o debmirror pode se encaixar melhor para você.