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:
-
Obtém arquivos de índice do repositório e os processa (o mesmo processo que
apt update
). -
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):
-
Digite o caminho para o espelhamento:
cd /path/to/mirroring
-
Backup
sources.list
:sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
-
Abra e comente todas as linhas em
sources.list
:sudo nano /etc/apt/sources.list
-
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 -
-
Atualizar arquivos de índice:
sudo apt update
-
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
-
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 antigosources.list.bak
e fazer:sudo apt update