Вступление
Привет, Хабр! 10.08.2021 вышло крупное обновление операционной системы Elementary OS - Elementary OS 6.0 Odin. Так как я около двух лет пользуюсь Elementary OS и имею уже настроенную под себя ОС, я задался логичным вопросом - Как обновить Elementary OS без переустановки?
Все мои изыскания в Google не привели меня к искомой информации, сами разработчики Elementary OS рекомендуют переустановку ОС как способ перехода на новую версию. Пришлось разобраться в вопросе и найти способ решения своей проблемы, чем и делюсь с вами.
Для тех кто не знаком с данной ОС, можно ознакомиться здесь и да, добро пожаловать в сообщество Elementary OS :)
Предупреждение
Разработчики Elementary OS не поддерживают данный способ обновления и в случае отказа системы техническая поддержка не станет вам помогать.
Здесь описаны мои личные изыскания и личный опыт который помог мне без боли потери данных\программ\настроек и лишних действий обновиться до свежей версии Elementary OS 6 Odin на двух машинах:
Ноутбук Jumper Ezbook X4, Elementary OS 5.1.7 Hera.
Виртуальная машина в VMWare, Elementary OS 5.1.7 Hera.
Для использования этой статьи требуются минимальные знания UNIX-подобных систем. Рекомендую перед началом сделать резервную копию всех важных данных на внешний носитель.
Действуйте на свой страх и риск.
Подготовка Elementary OS 5 Hera к обновлению
Перед началом обновления ОС нам необходимо предпринять ряд действий для обновления всего окружения текущей версии ОС до самых свежих версий. Весь процесс подготовки и обновления будет происходить в терминальном режиме с правами суперпользователя:
Переходим в терминальный режим сочетанием клавиш Ctrl+Alt+F1.
Авторизуемся под своим пользователем.
Переходим в режим суперпользователя, вводим пароль:
$ sudo su
Первым делом отключаем графическое окружение Pantheon и дисплейный менеджер LightDM:# systemctl stop lightdm
ВНИМАНИЕ: Если обновление ОС производится после авторизации и полной её загрузки, во избежание проблем с обновлением необходимо остановить все процессы запущенные пользователем командой ниже. Если пользователей в системе больше одного, следующую команду необходимо выполнить для всех пользователей входивших в систему в текущем сеансе. Если вход не осуществлялся - этот шаг можно пропустить.# pkill -u gutleibmann
Теперь нам необходимо обновить все установленные пакеты до самых свежих версий в текущей версии ОС. Для этого необходимо выполнить по порядку следующие команды:
# apt-get update
# apt-get upgrade -y
# apt-get dist-upgrade -y
Следующим шагом проверяем ОС на предмет установленных пакетов имеющих проблемы:# dpkg --audit
ПРИМЕЧАНИЕ: В случае отсутствия проблем вывод команды будет пуст. Если проблемы всё таки обнаружены - необходимо прочитать вывод команды и решить проблемы перед продолжением.
Дальше мы проверяем ОС на предмет наличия отложенных пакетов:# apt-mark showhold
ПРИМЕЧАНИЕ: В случае отсутствия подобных пакетов вывод команды будет пуст. В случае наличия подобных пакетов они могут нарушить работу приложений после обновления ОС, поэтому необходимо их выявить и принять решение что с ними делать - удалять или обновлять принудительно. Проверить какие именно пакеты отложены можно командой ниже:# dpkg --get-selections | grep -i hold
На этом подготовительные действия заканчиваются, приступаем к обновлению.
Обновление Elementary OS 5 Hera до Elementary OS 6 Odin
Так как в качестве основы Elementary OS 6 Odin используется дистрибутив Ubuntu 20.04 то нам потребуется изменить ветки программного обеспечения и исходных кодов использовавшихся в Elementary OS 5 Hera основанного на Ubuntu 18.04 на новые.
Первым делом изменяем ветки репозиториев:# nano /etc/apt/sources.list
Заменяем все слова bionic на focal.
Далее изменяем ветки официальных исходных кодов Elementary OS:# nano /etc/apt/sources.list.d/elementary.list
Заменяем все слова bionic на focal.# nano /etc/apt/sources.list.d/patches.list
Заменяем все слова bionic на focal.
Теперь получаем списки пакетов из новых веток:# apt-get update
ВНИМАНИЕ: Перед продолжением настоятельно рекомендую убедиться что все предыдущие шаги выполнены правильно, для этого необходимо запустить симуляцию обновления, после этого пункта пути назад уже не будет.# apt-get --simulate upgrade
Если выполнение этой команды завершилось без ошибки в конце, можно продолжать.
Приступаем к обновлению всего окружения ОС Elementary OS 5 Hera до Elementary OS 6 Odin:# apt-get upgrade -y
# apt-get dist-upgrade -y
В процессе обновления появится окно настройки "keyboard-configuration", где будет предложено выбрать предпочтительный способ переключения раскладки клавиатуры.
После этого в процессе обновления появится окно "libpam0g:..." с запросом на перезагрузку без предупреждения служб при обновлении пакетов, соглашаемся.
ПРИМЕЧАНИЕ: Иногда могут возникать проблемы с пакетом "io.elementary.wingspanel", если такая проблема возникла, выполни следующую команду:# apt-get --fix-broken install
Последнее что нам остаётся сделать - Удалить оставшиеся пакеты от прошлой версии Elementary OS:# apt-get autoremove
Перезагружаем машину и наслаждаемся результатом проделанной работы. Ниже можно увидеть скриншоты ДО и ПОСЛЕ обновления моей виртуальной машины описанным способом.
P.S.: Если остались какие-то вопросы или сложности в процессе обновления - оставляйте комментарии, постараюсь ответить и помочь.