Я пытаюсь настроить apt-mirror, он отлично работает для исходников Ubuntu, но когда я использую его для чего-то вроде GitLab, он загружает все версии пакетов.
Например, gitlab-ce составляет 72 ГБ, каждая версия меньше 300 МБ. Как я могу хранить только последние или даже последние 1 или 2 пакета, а не 459?
Зеркало APT предназначается для зеркального отражения целого репозитория от mirror.list
записи только.
В нескольких предложениях apt-mirror
работы как это:
Получает индексные файлы из репозитория и обрабатывает их (тот же процесс как apt update
).
Файлы загрузок от собранных индексных файлов, если они не существуют локально. Структура папок сохраняется в этом процессе (подобный wget -c -x <url_file_array>
).
Для более подробной информации, о как apt-mirror
работы и для подтверждения, что невозможно частично зеркально отразить репозиторий для получения последних версий только, можно обратиться к Исходному коду способного зеркала (Записанный в Perl).
Так, что сделать для получения последних версий от больших репозиториев?
Мое временное обходное решение для Вашей ситуации (берущий, например, gitlab-ce
репозиторий для Ubuntu 18.04 - Бионический):
Введите путь для зеркального отражения:
cd /path/to/mirroring
Резервное копирование sources.list
:
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
Откройте и прокомментируйте каждую строку в sources.list
:
sudo nano /etc/apt/sources.list
Добавьте свой желаемый репозиторий (репозитории) для зеркального отражения:
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 -
Обновите индексные файлы:
sudo apt update
Выберите последний URL пакетов из добавленного репозитория и запишите им в файл:
sudo apt-get install '*' --allow-unauthenticated -y --print-uris | grep -o '\'http.*\' | tr "\'" " " > download-list
Загрузите URL структурой папок, из-за -c
опция, это не загрузит файлы, которые существуют:
wget -i download-list -c -x
Приятного отдыха!!!
Для возвращения всего назад, просто замените sources.list
файл со старым sources.list.bak
и сделайте:
sudo apt update