Хулио Мерино. Знакомство с sysupgrade для NetBSD, 2012

За последние две недели вы могли получить удовольствие от сборки собственных двоичных выпусков NetBSD с помощью sysbuild. Но в чём радость, если нет простого способа модернизировать уже установленную NetBSD до новой версии?

Для модернизации NetBSD до новой версии из дистрибутивных архивов нужно действовать примерно следующим образом:

  1. Скачать новые дистрибутивные архивы (или подготовить свои собственные).
  2. Заменить ядро.
  3. Распаковать соответствующим образом дистрибутивные архивы в корневой каталог, без учёта опечаток в командах и распаковки etc.tgz.
  4. Воспользоваться etcupdate для внесения обновлений в файлы конфигурации.
  5. Воспользоваться postinstall для проверки модернизированной системы.

Просто? Да. Легко? Нет. Описанная выше процедура неочевидна для новичков в NetBSD. (На самом деле, если вы скажете кому-нибудь, что для обновления компьютера нужно распаковать архивы, то в 2012 году на вас будут смотреть так, как будто вы шутите.) Шутки в сторону, самое неприятное в этой процедуре то, что она очень монотонная и поэтому администратор очень легко может допустить простую ошибку и испортить работающую систему. (Со мной такое случалось... несколько раз.)

Компьютеры предназначены для автоматизации простых и повторяющихся задач, таких как эта, и в этом они очень хороши. Многие годы я производил обновление NetBSD вручную и позже написал для себя хреновые и ненадёжные сценарии для модернизации системы. Эти сценарии никогда не были предназначены для повторного использования и они даже не имели подобающей обработки ошибок. Более того, поскольку эти сценарии обитали в моём домашнем каталоге, я вспоминал про них и брал с собой при каждой установке NetBSD на новый компьютер.

Прошло много времени, прежде чем я сел и переписал свои сценарии в нечто более приличное. Нечто имеющее документацию, файл конфигурации и снабжённое тестами.

Итак, по всем описанным выше причинам, сегодня я представляю sysupgrade.

sysupgrade - это сценарий, который автоматизирует (упрощает) весь процесс модернизации установленной NetBSD до нового выпуска, будь то работающая или выключенная система. sysupgrade проделывает описанные выше шаги и руководствуется файлом конфигурации. Этот инструмент можно найти в pkgsrc/sysutils/sysupgrade, сразу после sysbuild. Вместе с ним устанавливаются страницы руководства sysupgrade(8) и sysupgrade.conf(5), файл конфигурации sysupgrade.conf по умолчанию, с которого стоит начать, должен ответить на большинство ваших вопросов.

Для нетерпеливых, следующая команда модернизирует ваш компьютер до указанной версии:

$ sysupgrade auto ftp://ftp.NetBSD.org/pub/NetBSD/NetBSD-<X.Y.Z>/$(uname -m)

Учтите, что в настоящее время sysupgrade - экспериментальный инструмент. У меня он хорошо работает на разных компьютерах (на которых запущены NetBSD 6.0 BETA и -current), и я использую описанную выше процедуру модернизации многие годы без каких-либо проблем. Однако соблюдайте осторожность, как и со всем новым программным обеспечением. Если вы используете NetBSD на виртуальной машине, перед запуском sysupgrade можно сделать её снимок. Я не думаю, что ваш компьютер взорвётся, но бережёного бог бережёт!

Приятного пользования, обратная связь приветствуется!

P.S.: Здесь ещё есть что улучшить. В файле TODO в каталоге пакета описаны некоторые идеи, над которыми я бы хотел поработать позже.

Автор перевода на русский язык: Владимир Ступин