Обновление ОС

Материал из ALT Linux Wiki
(перенаправлено с «Upgrade»)

Под обновлением операционной системы обычно подразумевается приведение всех её компонентов в актуальное состояние. Обратитесь далее к нужному разделу: Обновление ОС или Обновление до следующей версии ОС.

Обновление ОС

Внимание: здесь рассматривается обновление в рамках одной ветки (бренча) репозитория, переход с одной ветки на другую требует особых действий, например, oбновление до ветки p10

Выполнить обновление можно командами

# apt-get update && apt-get dist-upgrade && update-kernel

или одной командой

# epm full-upgrade

epm full-upgrade предпримет все действия по обновлению всех установленных компонентов (в том числе установленных через epm play, flatpak, snap).

Обновление до следующей версии ОС

Как правило, возможно обновление установленного дистрибутива ALT Linux до следующей версии без необходимости переустановки заново.

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

Само обновление производится путём указания требуемых репозиториев в файлах /etc/apt/sources.list.d/*.list, /etc/apt/sources.list и выполнения команд apt-get update && apt-get dist-upgrade

# apt-get update && apt-get dist-upgrade

либо эквивалентными действиями в графической утилите synaptic; после чего следует обновить и ядро командой update-kernel (не реализовано в Synaptic).

# update-kernel

Если при попытке сделать apt-get dist-upgrade выводится ругань о неудовлетворённых зависимостях, то следует обновить сначала apt и rpm:

# apt-get update && apt-get install apt rpm && apt-get dist-upgrade

В любом случае рекомендуется перед apt-get dist-upgrade обновлять apt и rpm.

Обновление до следующей версии ОС с использованием epm

Основная статья: epm

Чтобы выполнить обновление дистрибутива до следующей версии, выполните

# epm release-upgrade

Обновление включает в себя смену репозиториев, обновление всех пакетов, обновление ядра.

Обновление дистрибутива до Сизифа выполняется следующей командой (рекомендуется только если вы знаете, что делаете):

# epm release-upgrade Sisyphus

В любом случае

  • не смешивайте репозитории различных версий (и особенно с нестабильным Sisyphus)!
  • следует указывать один репозиторий (возможно, содержащий несколько компонент или архитектурных разделов)
    не забудьте проверить содержимое /etc/apt/sources.list.d/*.list, среди них несложно пропустить /etc/apt/sources.list.d/sources.list либо /etc/apt/sources.list.d/cdrom.list Как вариант, посредством apt-repo rm all отключить сразу все, это не удалит записи о репозиториях, а лишь закомментирует. После чего вручную подключить (раскомментировать, удалив # в строках) только нужные.
  • для смены источника, начиная с p7, так же удобно использовать утилиту apt-repo.
Основная статья: apt-repo
  • наиболее общим репозиторием для каждого дистрибутива, начиная с версии 3.0, является соответствующий бранч
  • начиная с ветки 4.0, обязательно подключение не только архитектурно-зависимого (i586 или x86_64), но и межархитектурного (noarch) раздела соответствующего репозитория второй строкой
  • если используется ПО со связанной ядерной/пользовательской частью (например, драйвер NVIDIA или VirtualBox) -- необходимо также выполнить обновление ядра при помощи update-kernel.
  • при существенном количестве кандидатов на удаление лучше отказаться от dist-upgrade, перепроверить конфигурацию репозиториев и посоветоваться в рассылке community@
  • в ubuntu и ей подобных дистрибутивах принята другая последовательность команд (apt-get update; apt-get upgrade). В дистрибутивах ALT она в общем случае не работает, т.к. не отслеживает изменение зависимостей. Применение такой последовательности команд ведёт к возникновению неисправимых ошибок в зависимостях.

В пределах версии

  • обновления можно получать из соответствующего дистрибутиву бранча (например, p8/branch для Альт p8 или p5/branch для Альт Линукс Школьный 5.0)

Между версиями

  • не следует предпринимать «прыжки» дальше, нежели на соседний бранч!
    например, процедура по возможности безболезненного обновления с Server 4.0 на бранч t6 выглядит как цепочка обновлений между ветками: 4.0=>4.1=>5.0=>5.1=>t6[1]
  • перед попыткой перехода между бранчами следует накатить все доступные обновления из текущего (особенно rpm и apt — apt-get update; apt-get install rpm apt)
  • подробности перехода уточняйте на соответствующих страничках для p10, p9, p8 и т.д.

apt-get upgrade

Несмотря на то, что команда upgrade существует, использовать её следует осторожно, либо не использовать вовсе (altbug #30867). Цитата из "ALT Linux Master 2.0. Руководство системного администратора":

Для обновления всех установленных пакетов используется команда apt-get upgrade. Она позволяет обновить те и только те установленные пакеты, для которых в репозитариях, перечисленных в /etc/apt/sources.list, имеются новые версии; при этом из системы не будут удалены никакие другие пакеты. Этот способ полезен при работе со стабильными пакетами приложений, относительно которых известно, что они при смене версии изменяются несущественно.

Иногда, однако, происходит изменение в именовании пакетов или изменение их зависимостей. Такие ситуации не обрабатываются командой apt-get upgrade, в результате чего происходит нарушение целостности системы: появляются неудовлетворенные зависимости. Например, переименование пакета MySQL-shared, содержащего динамически загружаемые библиотеки для работы с СУБД MySQL, в libMySQL, отражая общую тенденцию к наименованию библиотек в дистрибутиве, не приводит к тому, что установка обновленной версии libMySQL требует удаления старой версии MySQL-shared. Для разрешения этой проблемы существует режим обновления в масштабе дистрибутива — apt-get dist-upgrade.

Ссылки

  • Changes — страничка про наиболее царапучие изменения; содержит также ссылки на страницы по бранчам и весьма рекомендуемые к изучению заранее — по rpm и apt
  1. Несмотря на то, что выпуск дистрибутивов на 5.0/branch был отменён, обновление между 4.1 и 5.1 с его участием в качестве промежуточной точки проходит мягче, чем непосредственно.