Новости Calculate Linux (декабрь 2021)

Обновление старых систем

Работа по подготовке релиза Calculate Linux 22 подходит к концу. Хочется рассказать об одном, но очень важном нововведении, которое сделает систему ещё более надежней.

Многие пользователи подолгу используют Calculate Linux без переустановки, встречаются те, кто не переустанавливал систему 5 и даже 10 лет. С запуском бинарного репозитория обновлять систему стало значительно проще. И главной причиной были отнюдь не бинарные обновления, как многие могли бы подумать, а разрешение многочисленных блокировок, возникающих во время подготовки большого количества бинарных пакетов. Примером тому могут служить ночные сборки, которые из года в год регулярно обновляются, тестируются и берутся за основу новых релизов. Calculate по праву может считаться дистрибутивом с условно бесконечным сроком поддержки. Но все же есть одно слабое место в этой красивой схеме rolling-release обновлений - почти гарантированные проблемы при обновлении системы спустя длительный период времени.

Причины возникающих проблем с обновлением могут быть разными. Недавний пример - обновление апрельского релиза Calculate Linux 21 установленного в июле вызовет ошибку. Причина тому перевод дерева портежей на EAPI 8. Пакетный менеджер попавший в релиз версии 3.0.18, которая не поддерживает EAPI 8. В конце июня - начале июля мантейнеры Gentoo стабилизируют версию 3.0.20 с поддержкой EAPI 8, а уже в середине июля в дереве портежей начинают использовать EAPI 8. В итоге все обновления блокируются, помогает только последовательный запуск: cl-update --sync-only; emerge -1O python:3.9; emerge -1O glibc; emerge -1O portage; cl-update.

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

Идея решения проблемы с обновлением не нова и уже используется. Вспомните как обновляет себя Windows устанавливая сперва новый браузер, потом сервис пак для него, потом обновления для сервис пака и т.д. Вы думаете что выполнили обновление до конца, но последующий запуск снова выкатит приличное количество обновлений на уже установленные пакеты. Похожим путем пойдем и мы. Для этого для бинарного репозитория будет введено понятие “уровень” репозитория (параметр level в файле /grp/ini.env зеркала сейчас равен “0”). Используемый уровень обновления пакетов будет храниться в переменной утилит cl_update_level. Во время обновления утилита cl-update будет сравнивать значение переменной cl_update_level с совместимостью зеркала и, в случае необходимости, переключать на зеркало миграции. Зеркало миграции будет содержать состояние бинарного репозитория на момент последнего успешного обновления системы. После этого будет увеличено значение переменной cl_update_level. Утилита вернется на рабочее зеркало после того, как убедится, что его уровень соответствует системному, в противном случае переключит обновление на следующее зеркало миграции.

Для поддержания зеркал миграции мы арендовали новый сервер, резервные копии на котором будут поддерживаться при помощи уже опробованной и полюбившейся комбинации btrfs+btrbk. Такое нехитрое решение позволит условно неограниченно по времени выполнять обновления устаревших систем.

Поддержка Python 3

Перевод Calculate Utilities на Python 3 - важный этап развития системы. Из-за отсутствия поддержки необходимых библиотек в новой версии Python, мы откладывали этот переход продолжая поддерживать Python 2. За это время был запущен проект новой 4-й версии утилит, в котором планировалось полностью переписать код утилит. К сожалению проект затянулся и было принято решение все же портировать 3-ю версию утилит. Большинство ошибок миграции уже исправлено, Python 2 более не входит в состав дистрибутивов. В будущем мы планируем вернуться к работе над новыми утилитами 4-й версии.

Сбор предложений и другие улучшения

Некоторое время назад в качестве эксперимента на платформе Реформал мы запустили сбор отзывов и идей от пользователей. Спасибо всем, кто принял участие и написал свои пожелания, участвовал в обсуждении и голосовании. Если вы пропустили эту новость - то обязательно воспользуйтесь этой обратной связью. Что-то простое уже было исправлено, что-то более сложное по времени оставлено до лучших времён.

Переход на PipeWire

PipeWire - это звуковой сервер, который пришел на смену PulseAudio. В качестве альтернативы, в Calculate Linux по прежнему можно выбрать ALSA, которая скорей всего подойдет в большинстве случаев. Про PipeWire написано много лестных отзывов, он написан с расчетом на снижение системных требований и получения максимально качественного звука. Безусловно важным этапом перехода на него как раз был момент подготовки нового релиза.

Переход на ядро 5.15.6

Последним важным шагом на пути подготовки нового релиза был переход на новое ядро с длительным сроком поддержки 5.15. Новое ядро должно обеспечить лучшую поддержку железа, улучшенную поддержку файловой системы NTFS, оптимизации производительности и многое другое. Если вы испытываете сложности с переходом на новое ядро, вы можете установить бинарные версии ядра 5.10.

Релиз Calculate Linux 22 запланирован на этот месяц.

5 Likes

Прекрасные новости!
Команда продолжает радовать своими достижениями.
Так держать! Везде где только возможно, использую и планирую в дальнейшем использовать этот прекрасный дистрибутив!
Ребята, Вы - молодцы!

2 Likes

все четко и по-делу.
изменения радуют, кроме перехода на пипевире.
удивился стремительному переходу на ядро 5.15.6 с лонгтерма.

молодец, держи печенюшку.)

помогает только последовательный запуск: cl-update --sync-only; emerge -1O python:3.9; emerge -1O glibc; emerge -1O portage; cl-update.

Не помогло. Пробовал glibc обновить но в итоге пришлось переустановить всю систему.

Не удивительно, какое-то время этот рецепт работал.

Мне на Генте на протяжении ~10 лет 3-4 раза помогало
ROOT="/mnt/gentoo" emerge -O1 baselayout
ROOT="/mnt/gentoo" emerge -e @system
затем всё в тарбол, снос системы, распаковка тарбола (никаких емерже - просто ‘ls -la /’ ‘tar -cvpf -xvpf’ rm -rf * , и т. д .)
и копирование настроек откуда-нибудь из /mnt/data … в новую систему.

Хотя да - это мало отличается от переустановки системы.

PS.0 А да, спасибо. Молодцы.
(правда с pipewire можно было подождать до весны. слишком новая и не ясно что делать с пульсой)

ЗЫ.1 Ну и да - тут нужно перезагружаться либо с лайва, либо с другого раздела диска.
зато работает.

ЗЫ 2 чёто не в тему - потрите а?

Похоже рецепт работал до замены eudev
В телеге я описал как обновился с заменой evdev->udev

робяты, убогому скажите канал в телеге, пожалуйста.)

Официальный чат пользователей Calculate Linux. Здесь можно задать вопрос по использованию системы, предложить свою помощь, найти единомышленников.
Ссылка для приглашения в группу: Telegram: Join Group Chat
Сообщество: @calculatelinux

Сделайте инструкцию по разрешению конфликтов при обновлении и чтобы все в одном месте было.
То одна ошибка то другая. Сейчас такая
Failed to find the binary updates server

Можешь пожалуйста показать более подробный вывод консоли?
То есть что происходит до вывода этой ошибки?

Еще плиз значение переменной в
cl-core-variables-show --filter cl_update_level
и установленную версию в
eix calculate-utils

А можно перекомпилировать мир на свежей системе, потратив на это несколько ночей.
Потом переключиться на бинарные обновления и жить так дальше?
Чтобы при каждом обновлении не ждать неделю пока Chromium скриэйтится.

вообще супер… Джента скатилась на PD-Rustе … проще юзать изи кальк уже настроенный на openrc … самая офигенная система… долгих вам лет процветания и популярности

ребят исправте вис в интегрированных видеокартах intel,просто запарило костыль совать постоянно в настройки

ребят исправте вис в интегрированных видеокартах intel,просто запарило костыль совать постоянно в настройки

Так вы напишите хотя бы, какой именно костыль вы суёте и куда. Чтобы стало понятно ребятам что именно исправлять и где.

известный костыль в Граб … решение зависает intel hd ubuntu ///

там надо добавить в idle несколько строк… до апдейта может повиснуть система

или до апдейта… вроде частично баг был испрален… но может вызвать вис после установки образа … пока не обновишь систему

У меня не получается обновить систему, которая до этого последний раз обновлялась весной.
При этом набор команд cl-update --sync-only; emerge -1O python:3.9; emerge -1O glibc; emerge -1O portage; cl-update. нормально отработал, но при cl-update выдаёт такое:

* 871 пакетов будет установлено, 3245933 KiB будет загружено
!!! be rebuilt in order to solve the conflict(s). However, the following
!!! package(s) cannot be rebuilt for the reason(s) shown:

(dev-lang/perl-5.32.1:0/5.32::gentoo, installed): ebuild is masked or unavailable

It may be possible to solve this problem by using package.mask to
prevent one of those packages from being selected. However, it is also
possible that conflicting dependencies exist such that they are
impossible to satisfy simultaneously.  If such a conflict exists in
the dependencies of two different packages, then those packages can
not be installed simultaneously. You may want to try a larger value of
the --backtrack option, such as --backtrack=30, in order to see if
that will solve this conflict automatically.

For more information, see MASKED PACKAGES section in the emerge man
page or refer to the Gentoo Handbook.

* Error: The above package list contains packages which cannot be
* installed at the same time on the same system.

(x11-base/xwayland-21.1.4:0/0::gentoo, binary scheduled for merge) pulled in by
x11-base/xwayland required by (kde-plasma/kwin-5.23.4-r2:5/5::gentoo, binary scheduled for merge) USE="caps handbook screencast -accessibility -debug -gles2-only -multimedia -plasma -test" ABI_X86="(64)"

(sys-libs/libxcrypt-4.4.25-r1:0/1::gentoo, binary scheduled for merge) pulled in by
sys-libs/libxcrypt[system(-),abi_x86_32(-),abi_x86_64(-)] required by (virtual/libcrypt-2:0/2::gentoo, binary scheduled for merge) USE="-static-libs" ABI_X86="32 (64) (-x32)"

For more information about Blocked Packages, please refer to the following
section of the Gentoo Linux x86 Handbook (architecture is irrelevant):

https://wiki.gentoo.org/wiki/Handbook:X86/Working/Portage#Blocked_packages
* Выполнение Emerge завершилось с ошибкой
* Не удалось обновить

Хотя система, которую я обновлял вначале лета, а потом накатил осенью только firefox 94 с несколькими пакетами по зависимостям чтобы ff запустился, обновилась нормально, никакой ругани на perl, xwayland, … не было, хотя там тоже были не новые версии, а перл - тоже 5.32, да ещё и с кучей доп пакетов, а не базовая часть как на системе, что не могу обновить

Я когда-то подобное решил с kde, просто едалив его и вернув на место по зависимостям, но тогда зависимости не всё вытянули, я так и не понял, чего не хватало, и кое-что перестало работать. исправилось только при последующием полном обновлении KDE, повторят такое не хочу, т.к. то компьюьер жены, и она сильно обидится за такое обновление.

В общем, как решать такие взаимоблокировки при полном обновлении без сноса половины системы?