Перенос приложений при переустановке системы

Added by Alexander Tratsevskiy 27 days ago

Известно, что Calculate Linux обновляется двумя способами, первый - из ISO образа, второй - попакетно. Оба способа имеют свои плюсы и минусы. Обновление образом выполняется за считанные минуты, но после обновления не переносит доустановленный софт. Обновление попакетно выполняется заметно дольше, но состав пакетов остаётся прежним. В отличие от обновлений пакетами, обновление образом считается более безопасным, т.к. вы всегда имеете рабочий образ системы в отдельном разделе диска.

Уже на протяжении 12 лет в нашей компании десктопы сотрудников обновляются из образа. Большой сложности в доустановке ПО на компьютерах программистов не возникало, остальные ПК используют только базовый софт. Сегодня возникла потребность доустановить ПО на некотрых машинах и, чтобы не перегружать систему и не собирать модифицированный образ, мы решили добавить поддержку переноса установленных программ.

Главное, что нужно было учесть, это отсечь временные установки пакетов и изменения флагов и масок, т.е. переносить только "зафиксированные" изменения. Для этого в директориях /etc/portage/package.keywords/, /etc/portage/package.mask/, /etc/portage/package.unmask/ и /etc/portage/package.use/ был добавлен файл zz-autounmask. Имя файла выбрано не случайно, портежи сами создают файл с таким именем пытаясь исправить зависимости, при наличии пустой директории. В дальнейшем портежи продолжают работать с этим файлом, т.к. он в алфавитном порядке последний. Вместо привычного custom создаётся custom.cld, где cld - сокращение от имени дистрибутива. Этот файл как раз и будет переноситься в новую систему. Расширение cld позволяет пресечь миграцию программ, если вы например захотите установить во второй раздел другой дистрибутив, например сервер. Переносимый файл custom.cld будет использоваться так же в сетах /etc/portage/sets/ и в глобальных настройках /etc/portage/make.conf/.

В установщике cl-install начиная с версии 3.6.3 добавлена опция "-K [ON/OFF], --update-pkg [ON/OFF]", при использовании которой в установленной системе будет сформирован скрипт обновления, который запустится во время первой загрузки после поднятия сети и выполнит обновление пакетов. Так как custom.cld прописан в списке предустановленных сетов, помимо обновления будут установлены пакеты, которые ранее использовались в предыдущей установке. Лог установки будет выводиться на tty12.

Надо сказать, что последнее время мы всё чаще и осознанней используем сет custom. Это неплохая возможность выделить из массы предустановленных пакетов те, которые необходимы для работы конкретной машины. Теперь же этот список будет мигрировать вместе с остальными базовыми настройками системы, такими как настройки сети, учётные записи пользователей и т.д.

Ревизия ближайшего обновления переименует сет custom в custom.cld, а файлы custom масок и флагов переименует в zz-autounmask и создаст пустые файлы custom.cld.

install.jpg (40.9 KB)


Comments

Comment

Added by Николай Бочков 20 days ago

Что с поддержкой дополнительных оверлеев?

Comment

Added by Alexander Tratsevskiy 12 days ago

Что с поддержкой дополнительных оверлеев?

Немного позже можно будет решить эту задачу, спасибо за напоминание. Мы планируем пересмотреть работу с оверлеями, добавить локальный оверлей. Заодно можно будет решить вопрос с миграцией.

Thank you!