O repositório de CDs e o repositório de software são dois componentes distintos (eles ainda têm páginas separadas do Launchpad: cdmirrors e archivemirrors ). Portanto, espelhando-os 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:
- release (
trusty
,precise
, etc.) - arquitetura (
amd64
,i386
, etc.) - tipo de pacote (binário [
deb
] vs origem [deb-src
]) - canais (
trusty
,trusty-updates
,trusty-backports
, etc.) - seções (
main
,multiverse
, etc.)
Para espelhar o repositório de software, use apt-mirror
.
apt-mirror
é configurado usando /etc/apt/mirror.list
. Tem um formato muito semelhante ao sources.list
. O arquivo de configuração instalado pelo pacote tem algumas opções comentadas que listam seus padrões. Se desejar, você pode descomentar e alterá-las.
Para espelhar um repositório, você precisa adicionar uma linha a mirror.list
, como faria 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 fontes:
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 -updates
channel):
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
Finalmente, você precisa adicionar uma clean
line para que os pacotes não mais disponíveis no repositório sejam filtrados para remoção:
clean http://us.archive.ubuntu.com/ubuntu
Diga que suas variáveis são 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 comandosrm
para excluir pacotes e diretórios obsoletos) será/var/spool/apt-mirror/var/clean.sh
. - Os registros vão para
/var/spool/apt-mirror/var
.
O pacote apt-mirror
instala uma tarefa agendada ( /etc/cron.d/apt-mirror
), que você deve editar para ativar (descomentando a linha que contém /usr/bin/apt-mirror
). Você também deve adicionar um cron job para executar clean.sh
(eu o executo semanalmente).
É claro que você deve substituir http://us.archive.ubuntu.com./ubuntu
pelo espelho que preferir.