Update/p10

Материал из ALT Linux Wiki

Процедура обновления с p9 до p10 аналогична обновлению до p9.

Обновление

Внимание! При обновлении продолжает действовать лицензионное соглашение установленной изначально системы.
Примечание: Все команды в данной статье требуют права root, так как во время обновления может упасть графика, обновление лучше делать в текстовой консоле (Ctrl+Alt+F2)


Внимание! Так как обновление затрагивает и службу D-Bus, процесс обновления может вызвать падение Xorg. Поэтому непосредственно команду обновления дистрибутива apt-get dist-upgrade лучше вводить в текстовой консоли (Нажмите Ctrl+Alt+F2, введите root и пароль пользователя root).


Внимание! Сначала прочитайте раздел "Известные проблемы" в конце статьи.

0. Сделайте резервную копию системы до начала обновления

Внимание! Если не уверены, что можете сами починить систему при неудачном обновлении, обязательно сделайте резервную копию системы!

Желательно перед обновлением системы удалить все ненужные вам пакеты, и отключить ненужные сервисные службы. Это сэкономит вам некоторое время в процессе обновления, и уменьшит трафик скачанных пакетов. Сторонние пакеты, не входящие в репозиторий p9, могут не поддерживаться обновленной системой и мешать успешному обновлению.

1. Обновить дистрибутив до самого свежего p9

Все операции нужно делать с правами пользователя root.

apt-get update
apt-get dist-upgrade

2. Проверить apt-repo

Скорее всего утилита уже была установлена и обновилась на первом шаге, но на всякий случай проверьте наличие:

apt-get install apt-repo

3. Изменить источники обновления

apt-repo set p10

Для перехода с p9 на p10 недостаточно сменить источники. apt-repo делает всё необходимое: помимо смены источников, создаётся файл /etc/rpm/macros.d/p10 следующего содержимого:

%_priority_distbranch p10

4. Обновиться до p10

Внимание! Так как обновление затрагивает и службу D-Bus, процесс обновления может вызвать падение Xorg. Поэтому непосредственно команду обновления дистрибутива apt-get dist-upgrade лучше вводить в текстовой консоли (Нажмите Ctrl+Alt+F2, введите root и пароль пользователя root).
Примечание: Можно использовать screen. В этом случае падение xorg не должно вызвать закрытие консоли с запущенной процедурой обновления, и к ней можно будет переподключиться из текстовой консоли, доступной по Ctrl+Alt+F2. В системе с systemd следует установить предварительно пакет systemd-settings-disable-kill-user-processes, перезапустить сервис systemd-logind[1] и повторно зайти в систему (перелогиниться).
apt-get update
Примечание: Необязательный шаг:
apt-get clean
apt-get dist-upgrade -d
Первая команда удалит из кэша apt все старые пакеты, вторая скачает (но не установит) все нужные пакеты. Если у Вас уже скачивалось что-то новое, вместо clean может оказаться выгоднее использовать autoclean. Полученное содержимое /var/cache/apt может быть использовано для последующей массовой установки пакетов посредством rpm в случае возникновения проблем с обновлением.


Версии дистрибутивов 9.2 используют ядро un-def. Рекомендуется при обновлении на p10 переключиться на ядра std-def.

Внимание! На системах, использующих SecureBoot, обязательно обновление ядра командой update-kernel до перезагрузки. В противном случае система может стать незагружаемой!


Выполните собственно обновление:

apt-get dist-upgrade
update-kernel -t std-def

Если во время обновления в конце написало

E: Произошли ошибки при выполнении транзакции

выполните

apt-get -f install
apt-get dist-upgrade

5. Перезагрузка

Внимание! На системах, использующих SecureBoot, обязательно обновление ядра командой update-kernel до перезагрузки. В противном случае система может стать незагружаемой!

Перезагрузите систему.

6. Удаление устаревших пакетов

Следует воспользоваться советами по ссылке APT_в_ALT_Linux/Советы_по_использованию для удаления устаревших пакетов.

Обновление через EPM

Обновиться с p9 до p10 можно посредством программы epm, предварительно установив её самую последнюю версию:

# apt-get install eepm && epm install 281952

а затем скомандовав:

# epm release-upgrade
Внимание! Удалённое обновление рекомендуют запускать либо через сеанс screen или tmux (но и в них будет выдано предупреждение о релогине и дело дальше не пойдёт), либо с опциями --force --auto — без гарантии успешного завершения. Так что лучше делать это из физической консоли.

Устаревшие пакеты удалить командой:

# epm autoremove --direct

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

Настройки после обновления

Известные проблемы

E: Unknown vendor ID 'p10'

Если после смены репозитория в ответ на команду apt-get update Вы видите сообщение "Unknown vendor ID", то, вероятнее всего, у Вас установлен пакет apt-conf-<...>, отличный от apt-conf-branch. Верните старый репозиторий и установите этот пакет. Вместо обычного "Y" Вам придётся ввести фразу "Yes, do as I say!" (будет подсказка). Либо можно удалить символы [p10] из строк, описывающих новый репозиторий: в этом случае проверка не будет выполняться.

Grub и multiple partition labels

При обновлении совсем старой и несколько раз уже обновлённой системы может появиться такая ошибка:

/usr/sbin/grub-install: warning: Attempting to install GRUB to a disk with multiple partition labels. This is not supported yet..
/usr/sbin/grub-install: warning: Embedding is not possible.  GRUB can only be installed in this setup by using blocklists.  However, blocklists are UNRELIABLE and their use is discouraged..
/usr/sbin/grub-install: error: will not proceed with blocklists.

Это (про "a disk with multiple partition labels") может быть неправдой, а истинная причина — недостаток пустого пространства между нулевым сектором и первым разделом. В дистрибутивах, основанных на ветках до p6, инсталлятор создавал разделы, начиная с 63 сектора, для современного Grub этого мало. Начиная с p6, инсталлятор создаёт разделы, начиная с 2048 сектора. Если есть возможность освободить необходимое место (например, сдвинув, либо вовсе удалив раздел), скорее всего потребуется ещё и очистить пространство, заполнив его нулями (интересующиеся могут самостоятельно попробовать выяснить, какой именно байт(ы) и в каком секторе не нравится загрузчику и очистить только этот сектор):

dd if=/dev/zero of=/dev/sdX seek=1 count=2047
Внимание! Не ошибитесь со значением count, значение надо выбрать таким образом, чтобы перезапись не привела к затиранию реально нужного раздела.


ssh и systemd (screen и т.п.)

В конфигурации по умолчанию systemd закрывает всё, что было запущено при входе по ssh. Установите пакет systemd-settings-disable-kill-user-processes: altbug #36633

Обновление ExtensionPack для VirtualBox

После обновления virtualbox потребуется обновить ExtensionPack. Сделать это можно через меню Файл → Проверить обновления…

Обновление OpenVZ7

Перед началом обновления (до смены репозитория с p9 на p10) нужно удалить пакет crtools, в p10 после обновления должен появиться пакет crtools-ovz, или его нужно будет поставить.


Примечания