Есть ли способ выполнить обновление дистрибутива на автономной системе Debian, выполнив только одно обращение к онлайн-машине?
Мне удалось выполнить эквивалент apt-get update && apt-get dist-upgrade
на автономной машине с помощью apt-offline
, но мне пришлось сделать это, используя два обратных обращения к онлайн-машине.
Вот рабочий процесс:
# OFFLINE machine:
apt-offline set step1.sig --update --upgrade --upgrade-type dist-upgrade
# The step1.sig file only contains references to Package and Release
# files, not any package names.
# ONLINE machine:
apt-offline get step1.sig --bundle step1.zip
# OFFLINE machine (this is the equivalent of apt-get update):
apt-offline install step1.zip
apt-offline set step2.sig --update --upgrade --upgrade-type dist-upgrade
# The step2.sig file now contains references to deb files.
# ONLINE machine:
apt-offline get step2.sig --bundle step2.zip
# OFFLINE machine (this is the equivalent of apt-get dist-upgrade):
apt-offline install step2.zip
Мне был бы интересен способ сделать это с помощью одного обратного пути между автономными и онлайн-машинами, используя инструменты командной строки ( apt-offline
или другие).
Я попробовал это на первом этапе, надеясь, что он сможет извлечь что-то из списка существующих пакетов, но он просто не находит ничего для обновления при первом проходе, учитывая то, что на данный момент находится в списке известных пакетов на отключенной машине (что имеет смысл):
apt-offline set packages.sig --install-packages `aptitude search '~i!~M' -F '%p'`
решение1
Вам необходимо обновить файл индекса пакетов (доступные пакеты), а затем обновить набор пакетов (пакеты для установки).основано наобновленный индексный файл.
На первом этапе пути от офлайн-машины к онлайн-машине вы можете отправить файл индекса десинхронизированного пакета и набор десинхронизированных пакетов.
На онлайн-машине вы можете обновить файл индекса пакета.затемобновить набор пакетов на основе нового индексного файла и загрузить соответствующий пакет.
На втором этапе пути от онлайн-автомата до офлайн-автомата вы можете отправить полученный пакет.
Проблема в том, что
apt-offline set upgrade.sig --upgrade
использовать файл индекса пакета локальной машины, и нет возможности использовать другой файл индекса пакета. Поэтому вы не можете запустить эту команду на онлайн-машине и должны выполнить круговой обход на офлайн-машину.
Решением будет указать apt-offline использовать другой файл индекса пакета, нежели локальный, но на данный момент это невозможно. Вы можете пропатчить его или написать свой собственный инструмент.