Update/p9: различия между версиями
Строка 187: | Строка 187: | ||
На системах с [[sysvinit]] эта проблема не замечена. | На системах с [[sysvinit]] эта проблема не замечена. | ||
==== Запуск BIND системе с [[sysvinit]] ==== | |||
При использовании [[systemd]] после обновления с p8 до p9 могут возникнуть проблемы с привязкой BIND к стандартному порту 53 на интерфейсах с внешними IP. | |||
Это происходит из-за изменения сортировки стартовых скриптов, а именно изменения имени стартового скрипта network: S10network на S31network в каталогах /etc/~rc3.d - /etc/~rc5.d. | |||
В итоге BIND, имеющий скрипт запуска S20bind, запускается раньше S31network, т.е. до готовности интерфейсов. | |||
Так как BIND работает от непривилегированного пользователя named, то опция interface-interval в конфигурационном файле BIND не решает проблему. | |||
Временное решение - рестарт BIND от суперпользователя. | |||
Чтобы решить вопрос при старте системы, необходимо вернуть имя стартовому скрипту network: S10network в соответствующих. | |||
= Примечания = | = Примечания = |
Версия от 20:59, 2 декабря 2021
Обновление
0. Сделайте резервную копию системы до начала обновления
1. Обновить дистрибутив до самого свежего p8
apt-get update apt-get dist-upgrade
2. Проверить syslog
Пакет sysklogd был удалён из Sisyphus на момент формирования p9. Если Ваша система использует SysV init и sysklogd, а не systemd и journald, следует заранее установить либо rsyslog, либо syslog-ng во избежание удаления sshd (altbug #35312), или вытягивания по зависимостям systemd и journald.
sysklogd возвращён в Sisyphus, но всё ещё отсутствует в p9
3. Проверить apt-repo
Скорее всего утилита уже была установлена и обновилась на первом шаге, но на всякий случай проверьте наличие:
apt-get install apt-repo
4. Изменить источники обновления
apt-repo rm all apt-repo add branch p9
5. Обновиться до p9
apt-get update
apt-get clean apt-get dist-upgrade -dПервая команда удалит из кэша apt все старые пакеты, вторая скачает (но не установит) все нужные пакеты. Если у Вас уже скачивалось что-то новое, вместо clean может оказаться выгоднее использовать autoclean. Полученное содержимое /var/cache/apt может быть использовано для последующей массовой установки пакетов посредством rpm в случае возникновения проблем с обновлением.
Выполните собственно обновление:
apt-get dist-upgrade update-kernel
E: Произошли ошибки при выполнении транзакции
apt-get -f install
apt-get dist-upgrade
6. Перезагрузка
Перезагрузите систему.
7. Удаление устаревших пакетов
Следует воспользоваться советами по ссылке APT_в_ALT_Linux/Советы_по_использованию для удаления устаревших пакетов.
Настройки после обновления
Альт Образование
При обновлении удаляется пакет Lazarus. Установите его после обновления:
apt-get install lazarus
Если устанавливали приложения KDE, то удалите sddm, чтобы не было конфликта с LightDM:
apt-get remove sddm
LibreOffice
В дистрибутивах на Девятой платформе будет использоваться версия Still LibreOffice (а под именем LibreOffice будет собираться версия Fresh). Поэтому замените на LibreOffice-still:
apt-get install $(rpm -qa LibreOffice-\* --qf '%{name}\n' | sed 's/^LibreOffice/LibreOffice-still/')
Simply Linux
Необходимо удалить конфликтующий пакет libpq5.9 и установить вместо него пакет libpq5:
apt-get install libpq5.9- libpq5
Обновление с помощью EPM
Для обновления с p8 до p9 можно воспользоваться командой epm release-upgrade из пакета eepm [1]:
# apt-get install eepm (Эта команда позволяет узнать о существовании p9, СНАЧАЛА нужно выполнить ее, после чего уже обновляться!) # epm release-upgrade
Команда выполняет все необходимые действия для обновления, в том числе команды, описанные выше в порядке ручного обновления.
В связи с altbug:37672 необходимо сначала обновить версию eepm:
# epmi 236100
.
Известные проблемы
E: Unknown vendor ID 'p9'
Если после смены репозитория в ответ на команду apt-get update Вы видите сообщение "Unknown vendor ID", то, вероятнее всего, у Вас установлен пакет apt-conf-<...>, отличный от apt-conf-branch. Верните старый репозиторий и установите этот пакет. Вместо обыного "Y" Вам придётся ввести фразу "Yes, do as I say!" (будет подсказка). Либо можно удалить символы [p9] из строк, описывающих новый репозиторий: в этом случае проверка не будет выполняться.
ssh и systemd (screen и т.п.)
В конфигурации по умолчанию systemd закрывает всё, что было запущено при входе по ssh. Установите пакет systemd-settings-disable-kill-user-processes: altbug #36633
Обновление ExtensionPack для VirtualBox
После обновления virtualbox потребуется обновить ExtensionPack. Сделать это можно через меню Файл → Проверить обновления…
Обновление контейнера OpenVZ c хост-системой на p8
p9 содержит glibc 2.27. Этой библиотеке требуется ядро с поддержкой prlimit64, эта поддержка появилась в ядре 3.2.0. В OpenVZ есть механизм для обмана контейнера: в файле /etc/vz/osrelease.conf можно написать, какую версию ядра сообщать в контенер с соответствующим значением переменной OSTEMPLATE. Сверяется начальный набор символов шаблона, полностью значение из OSTEMPLATE можно не писать. Поддержка prlimit64 была бакпортирована в ядро 2.6.32-alt162, проверьте, что в хост-системе установлено ядро не старее этой версии.
Если вы неосторожно обновились без данной подготовки, Вам может помочь "apt-get dedup": https://lists.altlinux.org/pipermail/sisyphus/2019-September/368152.html
Обновление системы с KDE4
KDE4 в p9 не поддерживается (собственно, и в p8 уже не поддерживается, хотя и работает). Обновление системы с KDE4 может привести к тому, что не запустится графическая подсистема. Удобнее перейти на KDE5 до обновления, чем чинить систему после. Для этого надо установить какой-либо из метапакетов, устанавливающих KDE5: kde5, kde5-big, kde5-maxi, либо какой-то ещё, помеченный как "Set of KDE 5 applications". Пакеты, относящиеся к kde4, потом можно удалить. Например так:
apt-get remove `rpm -qa| grep "^kde4"|sed "s/-[^-]*-[^-]*$//"`
Перед подтверждением исполнения не помешает перепроверить список пакетов к удалению.
Обновление системы с TDE
TDE в p9 не поддерживается, следует поступить аналогично случаю с KDE4. Вероятно могут быть проблемы с переносом каких-либо данных, например knotes (не проверено).
Обновление syslog-ng
- При использовании с journald следует установить пакет syslog-ng-journal:
altbug:36454. - При обновлении OpenVZ-контейнера с хост-системой на ядре 2.6.32-ovz-el следует скопировать в /etc/syslog-ng/conf.d файл 00-redefine-source-sys.conf из примеров в документации[2].
Ethernet-мост в etcnet
Изменился способ настройки Ethernet-моcта в etcnet.
Сервер виртуализации PVE
Прежде чем начинать обновление, необходимо заменить openntpd на chrony (altbug:37656). В противном случае обновление завершится с ошибкой, а при исправлении в ручном режиме придется удалять весь PVE.
Старые профили firefox
При запуске со старым профилем из p8 firefox может не запуститься. Если такое случилось, следует "освежить" профиль запуском браузера с ключем --safe-mode (из терминала) и выбрать опцию восстановления "Refresh Firefox". Это исправит профиль с сохранением пользовательских настроек, паролей и истории.
Вход в систему (prefdm)
При пользовании systemd после обновления с p8 до p9 может возникнуть необходимость переключиться на применяемый display manager в явном виде:
# systemctl disable display-manager.service; systemctl enable lightdm.service
(либо sddm.service, либо какой иной)
На системах с sysvinit эта проблема не замечена.
Запуск BIND системе с sysvinit
При использовании systemd после обновления с p8 до p9 могут возникнуть проблемы с привязкой BIND к стандартному порту 53 на интерфейсах с внешними IP. Это происходит из-за изменения сортировки стартовых скриптов, а именно изменения имени стартового скрипта network: S10network на S31network в каталогах /etc/~rc3.d - /etc/~rc5.d. В итоге BIND, имеющий скрипт запуска S20bind, запускается раньше S31network, т.е. до готовности интерфейсов. Так как BIND работает от непривилегированного пользователя named, то опция interface-interval в конфигурационном файле BIND не решает проблему. Временное решение - рестарт BIND от суперпользователя. Чтобы решить вопрос при старте системы, необходимо вернуть имя стартовому скрипту network: S10network в соответствующих.