Como posso evitar que o apt-mirror baixe TODOS os pacotes?

1

Estou tentando configurar o apt-mirror, ele está funcionando bem para upstreams do ubuntu, mas quando eu o uso para algo como o GitLab, ele faz o download de todas as versões de pacotes.

Por exemplo, o gitlab-ce tem 72 GB, cada versão tem menos de 300 MB. Como posso manter apenas os pacotes mais recentes ou até mesmo os últimos 1 ou 2, não 459?

    
por Jacob Evans 08.05.2018 / 18:51

1 resposta

2

O APT Mirror destina-se a espelhar todo o repositório a partir de apenas mirror.list entradas.

Em poucas frases apt-mirror funciona assim:

  1. Obtém arquivos de índice do repositório e os processa (o mesmo processo que apt update ).

  2. Baixa arquivos de arquivos de índice coletados, se eles não existirem localmente. A estrutura da pasta é preservada nesse processo (semelhante a wget -c -x <url_file_array> ).

Para informações mais detalhadas sobre como apt-mirror funciona e para confirmar que é impossível espelhar parcialmente o repositório para obter apenas versões mais recentes , você pode consultar O código-fonte do apt-mirror (escrito em Perl).

Então, o que fazer para obter versões mais recentes de grandes repositórios?

Minha solução temporária para sua situação (por exemplo, gitlab-ce repository para o Ubuntu 18.04 - Bionic):

  1. Digite o caminho para o espelhamento:

    cd /path/to/mirroring
    
  2. Backup sources.list :

    sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
    
  3. Abra e comente todas as linhas em sources.list :

    sudo nano /etc/apt/sources.list
    
  4. Adicione seu (s) repositório (s) desejado (s) para espelhamento:

    4.1. Adicione isto a sources.list e saia do arquivo: deb https://packages.gitlab.com/gitlab/gitlab-ce/ubuntu/ bionic main

    4.2. Adicione o GPG:

    curl -L https://packages.gitlab.com/gitlab/gitlab-ce/gpgkey | sudo apt-key add -
    
  5. Atualizar arquivos de índice:

    sudo apt update
    
  6. Obtenha o url dos últimos pacotes do repositório adicionado e grave-os no arquivo:

    sudo apt-get install '*' --allow-unauthenticated -y --print-uris | grep -o '\'http.*\' | tr "\'" " " > download-list
    
  7. Faça o download dos urls com a estrutura de pastas, porque a opção -c não fará o download dos arquivos existentes:

    wget -i download-list -c -x
    

    Aproveite !!!

    Para reverter tudo de volta, basta substituir o arquivo sources.list pelo antigo sources.list.bak e fazer:

    sudo apt update
    
por Olimjon 11.05.2018 / 18:48