Проект GNOME продолжает двигаться в сторону превращения в самодостаточную десктоп-систему на основе ядра Linux. В дополнение к ранее представленным планам по созданию интерфейса для начальной настройки свежеустановленной системы, апплета для информирования о наличии обновлений приложений и инсталлятора для быстрой установки на диск загруженных Live-образов, разработчики GNOME выступили с новой инициативой. Ричард Хьюз (Richard Hughes), создатель проекта PackageKit, заявил, что занимается реализацией функции для проведения offline-обновления системы, которая позволит применять полученные обновления при загрузке ОС. Ознакомившись с концептом Леннарт Поттеринг (Lennart Poettering) подготовил план по реализации в systemd компонентов, необходимых для поддержки данного режима на стадии инициализации системы.

Идея состоит в следующем:

  • Gnome-settings-daemon подготавливает обновления, загружая через PackageKit необходимые пакеты и по завершению информирует пользователя о наличии обновлений через вывод уведомления в GNOME Shell;
  • GNOME Shell предлагает пользователю произвести обновление, если пользователь соглашается, то создается символическая ссылка /system-update на директорию с пакетами обновлений и происходит перезагрузка;
  • При загрузке systemd проверяет наличие ссылки /system-update, в случае наличия которого начинается обновление через PackageKit;
  • Plymouth наглядно отображает статус выполнения обновления;
  • Система перезагружается и пользователю сообщается было ли обновление успешным.

Обосновывая использования offline-обновлений разработчик приводит следующие причины:

  • Обновление работающих приложений может привести к их краху, в качестве примера можно назвать Firefox или Thunderbird;
  • Для того чтобы обновление библиотек вступило в силу необходимо перезапустить все использующие их приложения;
  • В случае краха во время обновления основных компонентов ОС вся система может быть повреждена;
  • При использовании offline-обновлений средствами ФС Btrfs можно сделать снапшот системы перед началом выполнения операции, для того чтобы произвести изменения атомарно и в случае проблем вернуть систему в первоначальное состояние.

Утверждается, что обновление некритичных приложений будет возможно без перезагрузки, при этом, если они открыты, пользователю будет предложено перезапустить их.

Источник: http://www.opennet.ru/opennews/art.shtml?num=34035