Вопрос или проблема
У меня установлен Ubuntu 20.04, работающий как виртуальная машина на Proxmox. Я настроил apt-mirror, чтобы помочь с нашими проблемами с пропускной способностью на работе (у нас медленный интернет), чтобы обновить все серверы на базе Debian, которые у нас запущены. Репозиторий работает хорошо и без проблем, но я просто хотел узнать, почему он все еще говорит, что необходимо загрузить ~4 ГБ, когда этого не происходит. Это известный баг для apt-mirror? Я искал в Google, DuckDuckGo, Bing, в общем, в любом поисковике, который можете представить, и каждый вопрос/форум, который я нашел, либо обсуждает это всего один день, либо касается чего-то совершенно другого.
Загрузка 375 индексных файлов с использованием 20 потоков...
Время начала: Чт, 20 мая 2021 10:13:09
[20]... [19]... [18]... [17]... [16]... [15]... [14]... [13]... [12]... [11]... [10]... [9]... [8]... [7]... [6]... [5]... [4]... [3]... [2]... [1]... [0]...
Время окончания: Чт, 20 мая 2021 10:13:13
Обработка индексных переводов: [TTTTTTTTTTTTT]
Загрузка 596 файлов перевода с использованием 20 потоков...
Время начала: Чт, 20 мая 2021 10:13:13
[20]... [19]... [18]... [17]... [16]... [15]... [14]... [13]... [12]... [11]... [10]... [9]... [8]... [7]... [6]... [5]... [4]... [3]... [2]... [1]... [0]...
Время окончания: Чт, 20 мая 2021 10:13:20
Обработка индексов DEP-11: [DDDDDDDDDDDDD]
Загрузка 100 файлов dep11 с использованием 20 потоков...
Время начала: Чт, 20 мая 2021 10:13:21
[20]... [19]... [18]... [17]... [16]... [15]... [14]... [13]... [12]... [11]... [10]... [9]... [8]... [7]... [6]... [5]... [4]... [3]... [2]... [1]... [0]...
Время окончания: Чт, 20 мая 2021 10:13:22
Обработка индексов: [PPPPPPPPlPPPPP]
3.1 GiB будет загружено в архив.
Загрузка 110 архивных файлов с использованием 20 потоков...
Время начала: Чт, 20 мая 2021 10:13:35
[20]... [19]... [18]... [17]... [16]... [15]... [14]... [13]... [12]... [11]... [10]... [9]... [8]... [7]... [6]... [5]... [4]... [3]... [2]... [1]... [0]...
Время окончания: Чт, 20 мая 2021 10:13:35
0 байт в 0 файлах и 0 директориях могут быть освобождены.
Заранее спасибо.
Вы можете использовать контрольные суммы, предоставленные вместе с зеркалом в директории ./var, для идентификации неисправных файлов.
$ cd /var/spool/apt-mirror/mirror
$ md5sum --ignore-missing --quiet -c ../var/MD5
$ sha1sum --ignore-missing --quiet -c ../var/SHA1
$ sha256sum --ignore-missing --quiet -c ../var/SHA256
Затем удалите их и перезапустите apt-mirror.
Похоже, этот скрипт решил мою проблему https://github.com/apt-mirror/apt-mirror/issues/113
Проверьте измененную версию скрипта (прокрутите вниз)
ОБНОВЛЕНИЕ с деталями.
Я использовал скрипт, опубликованный rinnaz. Сохранил его как файл *.sh и запустил.
#!/bin/bash # объединенные решения для apt mirror из: https://github.com/apt-mirror/apt-mirror/issues/49,https://github.com/apt-mirror/apt-mirror/issues/102 # Мне пришлось создать этот файл, чтобы решить проблему с тем, что DEP-11 @2 файлы не загружаются # все, что я делаю, это запускаю apt mirror вручную, а затем загружаю остальные файлы иконок каждый раз # Grep найдет строку, начинающуюся с "set base_path" # затем мы обрезаем все лишние пробелы # затем разбиваем строку по разделителю-пробелу и берем третье значение dataFolder=$(grep -F "set base_path" /etc/apt/mirror.list | tr -s " " | cut -d' ' -f3) echo "Путь к базовой папке, установленный в /etc/apt/mirror.list: $dataFolder" apt-mirror echo echo -n "Хотите проверить контрольную сумму MD5 и загрузить неудачные (авто Y через 5 секунд)? [Y/n]" echo read -t 5 answer exit_status=$? if [ $exit_status -ne 0 ] || [ "$answer" != "${answer#[Yy]}" ];then FAILEDPACKAGES="" echo "Чтение и проверка контрольной суммы MD5 с использованием файла: $dataFolder/var/MD5" #cd $dataFolder/mirror rm -f FAILED_MD5.txt echo "Неудачные файлы будут храниться в: $(PWD)/FAILED_MD5.txt" while IFS='' read -r line || [[ -n "$line" ]]; do #echo "Проверка: $line" sum=$(echo $line | cut -d' ' -f1) filename=$(echo $line | cut -d' ' -f2) echo "$sum $dataFolder/mirror/$filename" | md5sum -c - RESULT=$? if [ $RESULT -ne 0 ];then echo "$dataFolder/mirror/$filename" >> FAILED_MD5.txt wget -O $dataFolder/mirror/$filename $filename echo "$sum $dataFolder/mirror/$filename" | md5sum -c - SUBRESULT=$? if [ $SUBRESULT -ne 0 ];then echo "Извините, контрольная сумма снова не совпадает для файла: $dataFolder/mirror/$filename" $FAILEDPACKAGES+="$dataFolder/mirror/$filename Неудача снова, извините, не могу помочь" fi fi done
Ответ или решение
Причины некорректного отображения объёмов загрузки в apt-mirror на Ubuntu 20.04
При работе с apt-mirror
на вашей виртуальной машине Ubuntu 20.04 может возникать ситуация, когда система сообщает о необходимости загрузки значительного объёма данных, несмотря на то, что фактически не происходит загрузки. Объём в ~4 ГБ может выглядеть настораживающе, особенно в условиях ограниченной пропускной способности интернет-соединения. Давайте разберёмся в возможных причинах и решениях этой проблемы.
Определение проблемы
Согласно приведённому выводу из выполнения apt-mirror
, система сообщает, что будет загружено 3.1 GiB, однако фактически не происходит загрузки данных и выводит сообщение "0 bytes in 0 files and 0 directories can be freed". Это может быть связано с несколькими факторами:
-
Кеширование и недоступные файлы:
Если некоторые файлы в репозитории были обновлены, ноapt-mirror
не может их скачать из-за отсутствия связи или ошибок ресурса, система попытается перезапросить их при следующем запуске, что может приводить к неверным расчетам общего объёма. -
Ошибки в индексах:
Если индексы хранятся некорректно или произошли изменения на сервере репозитория, они могут вызывать несоответствия в ожидаемом и фактическом объёме загружаемых данных. -
Использование устаревшей версии:
Некоторые версииapt-mirror
содержат баги, касающиеся обработки обновлений и сумм контрольных файлов. Убедитесь, что у вас установлена последняя версия.
Решение проблемы
Вы можете предпринять несколько шагов для устранения описанной ситуации:
-
Проверка контрольных сумм:
Как уже упоминалось, проверьте контрольные суммы загружаемых файлов для выявления повреждённых или недостающих. Откройте терминал и выполните следующие команды:cd /var/spool/apt-mirror/mirror md5sum --ignore-missing --quiet -c ../var/MD5 sha1sum --ignore-missing --quiet -c ../var/SHA1 sha256sum --ignore-missing --quiet -c ../var/SHA256
Если вы увидите ошибки, удалите повреждённые файлы и запустите
apt-mirror
снова. -
Использование скрипта для автоматизации:
Возможно, стоит использовать модифицированный скрипт, который вы упомянули, чтобы защитить себя от подобных проблем в будущем. Он проверяет контрольные суммы и автоматически перезапрашивает недостающие файлы. Пример кода уже приведён в ваших материалах, и его реализация решит вашу проблему. -
Обновление apt-mirror:
Убедитесь, чтоapt-mirror
обновлён до последней версии. Это можно сделать с помощью команды:sudo apt update sudo apt install --only-upgrade apt-mirror
Заключение
Проблема, с которой вы столкнулись, может быть разрешена путем проверки контрольных сумм файлов и, при необходимости, их повторной загрузки. Используя предложенные скрипты и следуя рекомендациям, вы сможете избежать будущих трудностей с apt-mirror. Важно также следить за обновлениями и релизами, чтобы всегда иметь доступ к инструментам с последними исправлениями и улучшениями. Если проблема сохраняется, рассмотрите возможность обращения в сообщество разработчиков или поддержки для дальнейшей помощи.