Como criar um repositório local usando apt-mirror e mirrorkit?

7

Ter um repositório local pode ser muito útil. É possível usar rsync para criar um espelho de repositório, mas isso resulta em todos os lançamentos que estão sendo baixados, mesmo os mais antigos e incluiriam arquivos para arquiteturas que podem não ser necessárias.

apt-mirror permite escolher seletivamente partes do repositório. mirrorkit fornece um front-end para o apt-mirror.

Qual é a melhor maneira de criar um espelho de repositório local para partes selecionadas dos arquivos do Ubuntu?

Por exemplo, pode-se desejar incluir:

  • Principal, restrito, universo, multiverso, Todos Ubuntu e Lubuntu, mas excluem outros derivados, como o Kubuntu e o Xubuntu.

  • Apenas AMD64 e i386, mas exclua outras arquiteturas.

  • Somente o Trust Tahr, mas não o Precise Penguin ou o Utopic Unicorn.

Pode-se desejar configurar o processo para que seja baixado de um espelho local, em vez dos arquivos principais.

Como posso criar um repositório local usando apt-mirror e mirrorkit para uma arquitetura, versão ou variante do Ubuntu selecionada?

    
por user75798 18.11.2014 / 17:13

2 respostas

8

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 comandos rm 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.

    
por muru 13.12.2014 / 23:17
2

Eu recomendo o apt-cacher para aqueles com espaço limitado ou aqueles que têm preços de internet exorbitantes em seus países.

apt-mirror, supostamente, requer pelo menos 15 GB para cada sabor (32/64 bits) da distro desejada. O apt-cacher usa apenas os pacotes que você instalou.

Leia Crie um Repositório Local do Ubuntu usando Apt-Mirror e Apt-Cacher para mais detalhes / instruções, por favor.

    
por nyxee 28.07.2016 / 21:57