Перевод Calculate Linux на бинарные обновления подходит к концу. Шаг за шагом были проведены необходимые изменения в процессе сборки системы, обновления пакетов, создания новых бинарных профилей. Работа ещё не завершена, но уже сейчас можно оценить проделанную работу.
Обо всём по порядку.
Зачем нужны бинарные пакеты обновлений для Calculate Linux?
Вы можете использовать систему для изучения Linux, используя в своей работе производительный компьютер. Со временем, вы научитесь легко разрешать зависимости при установке пакетов. Но как только возникает нестандартная ситуация, например установка системы знакомым, покупка нетбука, перевод компьютеров в школе, начинают возникать сложности.
Связаны эти сложности в первую очередь со спецификой работы портежей. Для многих в диковинку использование USE флагов, маскировки и даже нескольких версий пакета. Неудачные размаскировки могут привести к путанице. Ну и наконец компиляция на нетбуке со временем начнет утомлять привыкшего поддерживать свежие версии пакетов пользователя.
Использование бинарных пакетов позволит решить следующие проблемы:
- Возможность починить систему практически на любой стадии “затупления”.
- Выполнить обновление сможет даже неискушенный пользователь.
- Обновлять систему теперь можно и на маломощных ПК. Их количество надо сказать пополнилось популярными в последнее время нетбуками и неттопами.
Есть и другие, не заметные на первый взгляд плюсы. Например слежение за процессом обновления позволит оперативно вносить исправления в маски и зависимости пакетов.
Как это работает
Если кто-то установил пакет calculate-meta, первое что бросится в глаза при обновлении - ‘emerge’ начал выделять цветом и отмечать словом ‘binary’ некоторые пакеты.
Пакет ‘calculate-meta’ войдет в состав Calculate Linux 11.0. Основная его задача - определять номер текущей версии дистрибутива и устанавливать на основании значения USE-флага CDISTRO необходимый мета-пакет дистрибутива. Версия 11.0 этого пакета переключает профиль вашего дистрибутива на бинарный.
Профили
Обновите оверлей, выполнив ‘layman -S’ и посмотрите список доступных профилей командой:
eselect profile list
Если вы уже смотрели ранее профили, то сможете отметить наличие новых, бинарных профилей, заканчивающихся на ‘binary’.
На данный момент бинарные профили имеют два отличия от основных:
- Наличием флага FEATURES=“getbinpkg”.
- Маскировкой версий пакетов, отличных от собранных.
В остальном профиль наследует стандартный Calculate, который в свою очередь наследует базовый профиль Gentoo. Сразу замечу, от всех изменений, которые произошли с внедрением бинарных обновлений можно отказаться. Для этого нужно попросту сменить профиль командой:
eselect profile set X
Где X - номер профиля.
Более подробно по опции “getbinpkg” можно почитать в справке emerge.
Маскировка пакетов необходима для того, чтобы ценой небольшой задержки в обновлении исключить получение более свежих обновлений с портежей с последующей компиляцией из-за отсутствия бинарного пакета.
Способы обновления
Самое приятное при внедрении бинарных пакетов заключается в том, что способ обновления практически не изменился. Вы по прежнему можете использовать привычную вам команду ‘emerge -uD world’. При полном совпадении USE флагов и при отсутствии инсталляций других пакетов, она будет отмечать пакеты подлежащие обновлению как бинарные.
Именно полное совпадение USE флагов может гарантировать установку пакетов из бинарных файлов. Специально для этого мы замаскировали в /etc/make.conf изменение USE-флага ‘LINGUAS’.
Если состав пакетов вас устраивает и вы не вносили серьезных изменений, при обновлении мира можно опустить обновление портежей, важно обновить оверлей Calculate. Т.е. обновление можно выполнить в три команды:
layman -S
eix-update
emerge -uD world
Доступен также способ обновления, при котором вы можете привести систему в соответствие последней Stage-сборке, воспользовавшись опцией “–getbinpkgonly” (-G). Обновление будет выполняться в таком случае следующими командами:
layman -S
eix-update
emerge -uDG calculate-meta
emerge --depclean
Обратите внимание на последнюю команду “emerge --depclean”, выполнение которой удалит неиспользуемые больше зависимости. Вместо world я использовал calculate-meta, т.к. при выполнении обновления с флагом “getbinpkgonly” будут использоваться только бинарные пакеты, количество которых ограничено. Указание calculate-meta не будет обновлять ничего лишнего.
В обоих примерах я использовал команду eix-update. Этой командой обновляется база данных программы eix. Её следует выполнять при обновлении оверлея через ‘layman -S’, либо при обновлении портежей командой ‘emerge --sync’. Но если вы хотите обновить и оверлей и портежи, лучше воспользоваться командой ‘eix-sync’, которая одновременно выполнит обновление портежей и оверлея и обновит кэш программы eix.
Особенности обновлений в Calculate Linux
- Calculate Linux это rolling-release - дистрибутив, поддерживающий непрерывный цикл обновления. Использование бинарных пакетов лишь упрощает поддержание системы с течением времени.
- Внедренный начиная с версии 10.9 механизм настройки пакетов при помощи шаблонов поддерживает так же и бинарные обновления. При помощи шаблонов можно настроить практически всё в системе, связав их с событиями установки пакетов, входа в сеанс, загрузки системы и т.д.
Выводы
Не следует ожидать, что установка из бинарных пакетов будет такой же быстрой, как у законодателя скорости Arch. Emerge не архиватор. Тем не менее, в некоторых случаях, таких как обновление браузера Chromium, выигрыш будет колоссальным. Вам уже не потребуется скачивать 130 Мб исходных текстов и компилировать в течение часа. Бинарный Chromium занимает около 16 Мб. Но это скорей иключение из правил, когда исходные тексты программ занимают на порядок больше места чем исходный код.
Поддержку обновления системы путем установки в свободный раздел мы конечно же оставим, т.к. это самый простой и быстрый способ реанимировать систему без использования загрузки со сторонних носителей.
**_
P.S. Исследвание возможностей портежей ещё не закончено. До выхода релиза 11.0 есть ещё время. Пишите ваши замечания и предложения.