Бинарные обновления

cube.png

Перевод 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 есть ещё время. Пишите ваши замечания и предложения.

Пока не пробовал(небыло времени), поэтому есть пару вопросов:
# Какой PORTAGE_BINHOST, надеюсь вроде https://...
# Будут ли отслеживаться изменения зависимостей. portage-2.2* сам генерит сет @preserved-rebuild при обновлении пакетов, происходит ли подобное при обновлении бинарей.
# Как поведет себя emerge если часть пакетов будет пересобрана мною вручную с измененными USE-флагами, а часть бинарных пакетов будет “слинкована” со старыми либами(а значит с немного другим функционалом)
# Будут ли доступны пакаджи НЕ дефолтных приложений, к примеру имеет смысл предоставлять выбор пользователю между: (firefox|chromium) или (evolution|thunderbird) или (<куча_IM_комбайнов_среди которых_дефолтный_pidgin>). Если да - то стоит сделать опрос на предмет “доставляемых” на CLD|CLDG|CLDX приложений, кто чем пользуется, и для самых “тяжелых” сделать бинарные пакаджи.

Первый и последний вопросы(имхо) самые важные. Остальные может и сомнительные, поскольку всплывают лишь при (пере|)сборке части системы.

Ой, как же я по Вам соскучился ребяты! :slight_smile: Вот уже сколько времени юзаю начальную версию десятки… Ну нет у меня интернета уже год как, проблемы нерешаемого характера. :((( И я столкнулся с весьма печальной дилеммой - как юзать “калькулятор” без интернета? Поясню. В пример приведу всеми нам известную форточку: если мы хотим использовать какую либо программу, то мы берём её дистрибутив-установщик, запускаем его и юзаем. И это, блин, удобно! :)) Любой даже совсем не подкованный юзверь, может взять этот файлик, при помощи мастера установки (который в принципе и не нужен, ибо обычно всё ставится по дефолту) может воткнуть к себе на компьютер любую программу. Вопрос: что “калькулятору” мешает завести такую систему установки СПО? Начнём с того, что это весьма добавит популярности (особенно среди нетбуков), не говоря уже о том, что это упростит общение с пользователями:
Пример: П - пользователь, С - ВЫ.
_П:Я привык работать на Файерфоксе. Хочу себе файерфокс.
С:Хорошо, вот Вам файлик!
С:Вам достаточно его запустить на своём компьютере и следуя инструкциям ответить на вопросы которые задаст Вам компьютер.
П:И всё?
С:И всё!_
Не знаю, может я что упустил, но уж не корите строго, я сменил сферу деятельности. :slight_smile:

ЗЫ: Сори за лёгкий оффтоп:))