Criando um mirror local do Debian com o debmirror

Introdução:
Imagine a seguinte situação: você administra um parque de computadores (servidores, desktops ou ambos) com o Debian/Ubuntu instalado (digamos 30 computadores). Suponha ainda que seu ambiente de trabalho é uma escola, lan house ou similar, e que uma vez por mês seja necessário reinstalar os computadores. Cada computador baixa coisa de 1Gb. Então são mais 30Gb baixados da internet. Em situações como essa, pode ser interessante a criação de um mirror local do Debian. Você configura a máquina onde está o mirror ára baixar os pacotes da internet, e as outras máquina passam a baixar diretamente dele. Como o acesso é realizado em rede local, poupa sua banda de internet e de quebra aumenta a velocidade da instalação (eu costumava fazer uma instalação completa do Debian, com ambiente gráfico Gnome em coisa de 30 minutos, utilizando-se um mirror em rede local).

Opções mais comuns (para opções avançadas, veja o manual):
-p: exibe informações de progresso
-v: modo verboso (coloca mais informações na tela)
--source/--nosource: inclui/retira o download dos fontes (o padrão é baixar os fontes)
-m: realiza uma checagem MD5 nos pacotes baixados (desabilitado por padrão)
-h: indica o host a ser utilizado (padrão: ftp.debian.org). Utilize um mirror fisicamente próximo a você. Cheque a lista de mirrors, bem como o conteúdo deles em http://www.debian.org/mirror/list, pois nem todos os mirrors contém todas as arquiteturas.
-u/--password: define o usuário e a senha a serem utilizados no servidor remoto, caso seja necessário.
--method: define o método de obtenção dos arquivos (basicamente ftp, http ou rsync). Aqui utilizaremos http.
--proxy: define o proxy a ser utilizado, caso seja necessário. O proxy deve ser informado no formato http://usuario:senha@endereco:porta (exemplo: http://joao:ninguem@proxy.empresa:3128 )
-t: define o timeout da operação de download, em segundos
-d: define qual distribuição do Debian baixar (etch, lenny, sid, etc). Podem ser selecionadas várias distribuições, separadas por vírgula. Não é recomendável o uso do "apelido" (stable, testing, etc) da distribuição aqui. O padrão é a SID (unstable).
-s: define quais seções serão baixadas. O padrão é main,contrib,non-free,main/debian-installer.
-a: define quais arquiteturas serão baixadas. O padrão é i386
-r: diretório a ser acessado no servidor remoto. O padrão é /debian
--exclude=regex: não baixa arquivos que combinem com a RegEx (expressão regular) informada.
--ignore-release-gpg: ignora erros por não encontrar o certificado de segurança local.
--dry-run: executa uma simulação (embora baixe alguns arquivos pequenos). Bom para se ter uma idéia do tamanho total do download, para cálculo de uso de banda e espaço em disco.

Exemplo de uso:
debmirror -p -v --source -h ftp.br.debian.org --method=http -d lenny -a i386,sparc --ignore-release-gpg /var/www/mirror/debian
Após a execução, é necessário trocar o usuário dono dos arquivos para o mesmo que executa o apache (www-data). Isso é feito com o comando
chown -R www-data:www-data /var/www/mirror/debian
Descrição:
Criar um mirror no diretório /var/www/mirror/debian, baixando arquivos com o método http, a partir do servidor ftp.br.debian.org. Baixar também o código fonte dos pacotes. Baixar a distribuição Lenny para as arquiteturas i386 e Sparc (máquinas da Sun). Ignorar a ausência de certificados locais. Todas as opções não informadas são mantidas em seu valor default.

Observação:
Uma característica importante que faz falta (na minha opinião) no debmirror é a possibilidade de limitar o consumo de banda do programa, de modo a não consumir toda a banda de internet da sua rede. Uma opção para efetuar esse controle é a utilização do trickle, que deve ser tema de um futuro post por aqui.