суббота, 22 марта 2025 г.

Экстремальное обновление Opensuse с 42.3 до 15.6 версии

Обратился ко мне старый знакомый с просьбой обновить операционную систему на ноутбуке. Причина - сайты требуют новую версию браузера. Последний раз какие-либо обновления устанавливались в далёком 2018 году. Систему ставил и настраивал я сам. Дистрибутив - Opensuse 42.3 KDE. Последние 5 лет никакого обслуживания! 

В таких случаях самым разумным было бы установка с нуля или по-крайней мере обновление в лайв-режиме. Я решил провести эксперимент - можно ли обновить такую систему до актуальной версии без переустановки?

Для начала подключим сетевой кабель, чтобы обновление шло по проводу, а не по воздуху. Также для начала надо удалить все просроченные ключи и старые репы и добавить новые. Иначе возможны ошибки вида: warning: /var/cache/zypp/packages/http-download.opensuse.org-ca334c76/x86_64/libnfsidmap0-0.26-150600.28.6.2.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID 39db7c82: NOKEY Они не влияют на процесс, но зачем, если можно их избежать? Я также удалил группы пакетов KDE (мета-пакеты patterns). Так как это может стать препятствием при обновлении. 
Рис.1 - актуальные репозитории для версии 15.6

Список и описание репозиториев текстом для удобства копирования. Обратите внимание, что на Рис.1 их больше. Этот же список по-умолчанию (дебаг и исходники убраны аналогично)! Источник, где взял список найти не смог,  решил разместить оригинальный список в своём мини-блоге.

OSS
The main repository: open source software only.

Version: Leap 15.6 http://download.opensuse.org/distribution/leap/15.6/repo/oss/

Non-OSS
Non-free (as in freedom) software, such as Opera and Steam.

Version: Leap 15.6 http://download.opensuse.org/distribution/leap/15.6/repo/non-oss/

Update
Repository of official security and bugfix updates for OSS packages.

Version: Leap 15.6 http://download.opensuse.org/update/leap/15.6/oss/

Update Non-OSS
Repository of official security and bugfix updates for non-OSS packages.

Version: Leap 15.6 http://download.opensuse.org/update/leap/15.6/non-oss/

Backports Update
Update repository of openSUSE Backports.

Version: Leap 15.6 http://download.opensuse.org/update/leap/15.6/backports/

SLE Update
Update repository with updates from SUSE Linux Enterprise 15.

Version: Leap 15.6 http://download.opensuse.org/update/leap/15.6/sle/

Для первичного обновления репозитарий repo-openh264 нужно отключить. Потом выполняем в консоли zypper up от root - это позволит обновить пакеты до версии выше, но без установки новых, смены поставщика. Будет примерно на пару сотен МБайт. Далее через Yast производим обновление всех установленных пакетов (это можно сделать и в консоли, но легче выставить мышкой все галочки, чем выбирать цифрами нужный вариант в консоли). При этом конечно же вылезут конфликты. Первый раз 257 штук, и второй раз - около 100. Решаются вручную. Описывать подробно этот пункт не буду, так как действовал по наитию и пониманию. Однако, логика такая - НИКОГДА не выбирать пункт ПОВРЕДИТЬ ЗАВИСИМОСТИ!!! Выбираем: удалить пакет, если блокирует установку новых пакетов или отказываемся от установки новых, если для них требуется удалить сотни старых пакетов. Первый раз эта процедура затронет примерно на 1.6 Гб. На втором проходе - на 4.6 Гб. Да, на это потребуется время. Всё обновление занимает не один час на HDD. Также на 2 или 3 проходе было удалено примерно на 1 Гб пакетов. Среди них будет много важных системных компонентов, а также пакетов среды KDE.

Если всё прошло гладко, то система больше не будет требовать обновлений. В процессе обновления интерфейс системы может зависать, отваливаться, но главное - это чтобы окно терминала konsole оставалось открытым как и сам Yast. В моём случае после обновления всей системы было удалено единственное ядро 4.4, а новое и актуальное 6.4 установлено не было! По-хорошему, до первой перезагрузки его нужно установить командой из под root: zypper in kernel-default

Однако, если вы всё же "проморгали" этот момент, то после первой же перезагрузки система откажется загружаться. Потребуется какой-нибудь live. Я взял Mint 21. Грузимся и монтируем нашу установленную систему в какую-нибудь папку. Можно из под пользователя. Не забываем также смонтировать /dev /sys /proc командами из под root:

mount --bind /dev /media/mint/SYSTEM/dev
mount --bind /proc /media/mint/SYSTEM/proc
mount --bind /sys /media/mint/SYSTEM/sys

Далее chroot-имся в нашу систему командой из под root: chroot /media/mint/SYSTEM Здесь стоит отметить, что каталог SYSTEM - это каталог, в который Mint смонтировал корень установленной системы. В данном случае это LABEL раздела /dev/sda1, но в вашем случае это может быть UUID или другое имя.

Устанавливаем ядро: zypper in kernel-default

Обновляем загрузчик: grub2-mkconfig -o /boot/grub2/grub.cfg

Выходим из chroot командой exit

Далее отмонтируем /dev /sys /proc командами из под root:

umount /media/mint/SYSTEM/dev
umount /media/mint/SYSTEM/proc
umount /media/mint/SYSTEM/sys

Отмонтируем корень через файловый менеджер и перезгружаемся. У меня после система загрузилась без каких-либо проблем и ошибок. Подробнее о chroot и восстановлении grub можно почитать ТУТ.

На экране входа меня ждал сюрприз - нельзя было войти в KDE. Причина довольно простая - был удалён почти гиг пакетов, в том числе туда попала оболочка и ядро. Opensuse поставляется с установленным по-умолчанию менеджером окон icewm, настройку которого я уже описывал в своём блоге. Через него прекрасно можно зайти в Yast и выполнить установку необходимых нам пакетов KDE или даже выбрать группу. Также в моём случае система решила удалить звуковой сервер pulse Необходимо выполнить его установку повторно. Возможно ещё какие-то пакеты были удалены. Никаких проблем "вернуть всё в зад" нет. Более того настройки пользователей как и сами учётные записи остаются неизменными. Вот за это я и  люблю линукс! :-)
 
Мультимедиа или как сделать, чтобы всё играло хорошо и красиво! Включаем или добавляем репозитарий repo-openh264 и устанавливаем пакет zypper in gstreamer-1.20-plugin-openh264 Репы packman и libdvdcss остались от прошлой установки. Так что нужно лишь повторно установить пакеты командой (если вдруг они удалились в процессе обновления): zypper install --allow-vendor-change ffmpeg-4 lame gstreamer-plugins-bad gstreamer-plugins-ugly gstreamer-plugins-ugly-orig-addon gstreamer-plugins-libav libavdevice57 libdvdcss2 vlc-codecs Также мне попалось полезное видео, с подробным описанием как выполнить установку пакетов именно из репозитория packman:
На 4:25 как раз показан этот шаг. К сожалению, ссылки в описании к видео уже не актуальны.

Проблемы и их решения: на экране входа и выбора пользователя клавиатура по-умолчанию на-русском. Чтобы исправить это - надо  в Yast выставить английскую системную клавиатуру, а потом настроить раскладку в KDE (когда будете выбирать, то выбирайте просто РУССКАЯ и США). Из явных глюков - кнопка включения ноутбука больше не функционирует. Попытка повторно настроить действие в настройках среды ни к чему не привела. Данная проблема владельцем ноутбука была признана не существенной. Также было обнаружено, что отсутствует программа для снятия скриншотов. Какая была установлена изначально - не известно, но прекрасно встала и выполняет свои функции - Spectacle.

После завершения обновления системы и установки новых пакетов, стоит удалить осиротевшие пакеты. Посмотреть "сироток" можно командой: zypper packages --orphaned Я предпочёл удалять их вручную по 1 пакету, чтобы не удалить чего лишнего. Эту операцию также желательно было выполнить и в начале перед обновлением, но там "сиротки" при удалении тянули за собой пол системы. Так что я пропустил этот важный шаг.
Рис.2 - Opensuse 15.6

Выводы и мнение: стоило ли обновлять такую устаревшую систему или проще поставить с нуля? Я лично считаю, что установка с нуля была бы намного быстрее и не потребовала напильника, что вообщем-то и не является открытием. С другой стороны Opensuse демонстрирует удивительную живучесть. Свою версию 12.3 (тоже ужасно устаревшую на тот момент) я переключал на ветку tumbleweed лет 7 тому назад и обновление тоже прошло без каких-либо проблем. Деградации производительности замечено не было. Владелец ноутбука даже отметил, что всё стало работать намного быстрее. Я использую данный дистрибутив с 2007 года. Это один из немногих дистрибутивов, который не требует знания консоли (имеется ввиду обычное использование) благодаря Yast. Особых проблем с ним нет, кроме установки кодеков, но они решаются 1 раз при установке и всё. Отдельно хочется ещё раз отметить, что если бы не проблемы с сайтами, то система полностью удовлетворяла потребности и не требовала к себе никакого внимания.

Комментариев нет:

Отправить комментарий