O repositório de CDs e o repositório de software são dois componentes distintos (eles ainda têm páginas separadas da Barra de Ativação: cdmirrors e archivemirrors ). Portanto, espelhá-los são duas tarefas distintas. Além disso, embora os vários tipos tenham pastas diferentes no repositório do CD, eles compartilham um repositório de software. Assim, você pode espelhar seletivamente as imagens por sabor, mas não o software. Para o repositório de software, você pode espelhar seletivamente com base em:
- liberar (
trusty
, precise
, etc.)
- arquitetura (
amd64
, i386
, etc.)
- tipo de pacote (binário [
deb
] vs fonte [ deb-src
])
- canais (
trusty
, trusty-updates
, trusty-backports
, etc.)
- secções (
main
, multiverse
, etc.)
Para espelhar o repositório de software, use apt-mirror
.
apt-mirror
está configurado usando /etc/apt/mirror.list
. Tem um formato muito semelhante ao sources.list
. O arquivo de configuração instalado pelo pacote possui algumas opções comentadas que listam seus padrões. Se desejar, você pode descomentar e alterá-los.
Para espelhar um repositório, você precisa adicionar uma linha mirror.list
como gostaria para sources.list
:
deb http://us.archive.ubuntu.com/ubuntu trusty main multiverse restricted universe
O padrão é espelhar apenas a arquitetura do host; portanto, se você estiver em um Ubuntu de 64 bits, apenas amd64
será espelhado. Você precisa adicionar outra linha do formulário:
deb-i386 http://us.archive.ubuntu.com/ubuntu trusty main multiverse restricted universe
E para pacotes de origem:
deb-src http://us.archive.ubuntu.com/ubuntu trusty main multiverse restricted universe
Se você estiver procurando por um espelho razoavelmente completo, essas linhas seriam o mínimo (eu também recomendaria o -updates
canal):
deb http://us.archive.ubuntu.com/ubuntu trusty main multiverse restricted universe
deb http://us.archive.ubuntu.com/ubuntu trusty-security main multiverse restricted universe
deb-i386 http://us.archive.ubuntu.com/ubuntu trusty main multiverse restricted universe
deb-i386 http://us.archive.ubuntu.com/ubuntu trusty-security main multiverse restricted universe
Por fim, você precisa adicionar uma clean
linha para que os pacotes que não estão mais disponíveis no repositório sejam filtrados para remoção:
clean http://us.archive.ubuntu.com/ubuntu
Digamos que suas variáveis sejam assim (os padrões):
set base_path /var/spool/apt-mirror
set mirror_path $base_path/mirror
set skel_path $base_path/skel
set var_path $base_path/var
set cleanscript $var_path/clean.sh
Então:
- O repositório será espelhado para
$mirror_path/parent-hostname/directory
(então /var/spool/apt-mirror/mirror/us.archive.ubuntu.com/ubuntu
)
- O
clean.sh
(que será um conjunto de rm
comandos para excluir pacotes e diretórios obsoletos) será /var/spool/apt-mirror/var/clean.sh
.
- Os logs irão para
/var/spool/apt-mirror/var
.
O apt-mirror
pacote instala um cron job ( /etc/cron.d/apt-mirror
), que você deve editar para habilitar (descomentando a linha que contém /usr/bin/apt-mirror
). Você também deve adicionar um trabalho cron para execução clean.sh
(eu o executo semanalmente).
Obviamente, você deve substituir http://us.archive.ubuntu.com./ubuntu
por qualquer espelho que preferir.