APT (почти) без Сети

02.08.2008 17:33:52

Продолжаем «полезную» серию. 🙂

Как известно, в самом лучшем дистрибутиве GNU/Linux (см. Debian), используется самая лучшая система управления пакетами (см. APT). APT сеет/косит/мелет… Ну то есть, качает, ставит, обновляет. 🙂 И делает это очень успешно. Но, в основном, когда есть адекватное подключение к Сети. Без неё всё немножко более грустно.

Можно обновляться с помощью CD/DVD, с выходом нового стабильного релиза или обновления существующего (r1-2-3…). Но это долго ждать. Плюс, может, хочется и из других веток/репозиториев что-то поставить. Что делать?

В общем, не буду томить, всё уже давно придумано. Конкретно можно почитать руководство. В нём рассмотрены два варианта. Один с использованием APT на обеих машинах (одна, которую хотим обновлять, второая, которая качает), второй с wget.

Первый путь позволяет обновлять полностью оффлайновую машину. Я его рассматривать не буду, уровень шаманизма там повыше и сам я его не пробовал. Предполагаем, что машинка всё-таки как-то подключена к интернету, но очень уже плохо подключена, например, модем там болтается.

В этом случае мы можем позволить себе скачивать/обновлять индексные файлы, но вот сами пакеты, увы. Стало быть, задача упрощается до предела — получить список ссылок на пакеты с машинки и бежать со списком к секретному месту с хорошим соединением, где список срочно качать.

Увы, здесь нам не поможет aptitude, рекомендуемый инструмент для управления пакетами, но вполне поможет старый-добрый apt-get. Итак, смотрим, что мы хотим сделать, в духе

# apt-get -V dist-upgrade

С выполнением действий не соглашаемся. Если нас всё устраивает:

# apt-get -qq --print-uris dist-upgrade > uris
# awk '{print "wget -c -O" $2 " " $1}' < uris > wget-script

В файлике uris получим исчерпывающую информацию по файлам, ссылку, желаемое имя на выходе, размер, хэш. А в файлике wget-script скриптик, который вызывает wget и качает всё необходимое. Запускаем его на второй машине:

$ sh wget-script

Оригинальное руководство рекомендует затем использовать параметр dir::cache::archives при вызове apt-get, ну а я бы привычным образом бухнул всю армаду скачавшихся пакетов на первую машинку прямо в /var/apt/cache/archives/. Можно чего можно просто сделать dist-upgrade.

Аналогично можно провернуть установку чего-нибудь объёмного. Аналогично, полагаю, можно скачать файлы и чем-то отличным от wget, вся информация есть, надо только правильно её применить по ситуации. Творчествуйте!

Много комментариев (2) к заметке “APT (почти) без Сети”

  1. http://mdf-i.blogspot.com/:

    А у вас в «лучшем дистрибутиве» нету случайно возможности скачивать не пакеты целиком а дельты? Хотя у вас все пакеты бинарные.. сложнее наверное.

    У нас в Gentoo есть такая возможность (deltup), которая здорово сокращает трафик. я думаю раз в 5 точно.

  2. Просто Журнал » Дельта-обновления с debdelta:

    […] предыдущей заметке поступил вопрос: А у вас в “лучшем дистрибутиве” нету случайно […]

Закомментировать

Вам бы, по-хорошему, зарегистрироваться сначала надобно, прежде чем комментарии оставлять. Но, в порядке исключения, можете попробовать с OpenID проскочить, вдруг.