Как я могу предотвратить загрузку apt-mirror ВСЕХ пакетов

Я пытаюсь настроить apt-mirror, он отлично работает для исходников Ubuntu, но когда я использую его для чего-то вроде GitLab, он загружает все версии пакетов.

Например, gitlab-ce составляет 72 ГБ, каждая версия меньше 300 МБ. Как я могу хранить только последние или даже последние 1 или 2 пакета, а не 459?

1
задан 17 May 2018 в 20:45

1 ответ

Зеркало APT предназначается для зеркального отражения целого репозитория от mirror.list записи только.

В нескольких предложениях apt-mirror работы как это:

  1. Получает индексные файлы из репозитория и обрабатывает их (тот же процесс как apt update).

  2. Файлы загрузок от собранных индексных файлов, если они не существуют локально. Структура папок сохраняется в этом процессе (подобный wget -c -x <url_file_array>).

Для более подробной информации, о как apt-mirror работы и для подтверждения, что невозможно частично зеркально отразить репозиторий для получения последних версий только, можно обратиться к Исходному коду способного зеркала (Записанный в Perl).

Так, что сделать для получения последних версий от больших репозиториев?

Мое временное обходное решение для Вашей ситуации (берущий, например, gitlab-ce репозиторий для Ubuntu 18.04 - Бионический):

  1. Введите путь для зеркального отражения:

    cd /path/to/mirroring
    
  2. Резервное копирование sources.list:

    sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
    
  3. Откройте и прокомментируйте каждую строку в sources.list:

    sudo nano /etc/apt/sources.list
    
  4. Добавьте свой желаемый репозиторий (репозитории) для зеркального отражения:

    4.1. Добавьте это к sources.list и выход из файла: deb https://packages.gitlab.com/gitlab/gitlab-ce/ubuntu/ bionic main

    4.2. Добавьте GPG:

    curl -L https://packages.gitlab.com/gitlab/gitlab-ce/gpgkey | sudo apt-key add -
    
  5. Обновите индексные файлы:

    sudo apt update
    
  6. Выберите последний URL пакетов из добавленного репозитория и запишите им в файл:

    sudo apt-get install '*' --allow-unauthenticated -y --print-uris | grep -o '\'http.*\' | tr "\'" " " > download-list
    
  7. Загрузите URL структурой папок, из-за -c опция, это не загрузит файлы, которые существуют:

    wget -i download-list -c -x
    

    Приятного отдыха!!!

    Для возвращения всего назад, просто замените sources.list файл со старым sources.list.bak и сделайте:

    sudo apt update
    
2
ответ дан 7 December 2019 в 13:24

Другие вопросы по тегам:

Похожие вопросы: