Update/p6

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

Инструкция по обновлению до нового бранча. Общая инструкция по обновлению установленного дистрибутива: Обновление ОС. Перед обновлением закройте приложения, работающие с apt-get: apt-indicator, Synaptic и т.п.

Обновление с p5 на t6

Внимание! При обновлении системы с p5 до t6 branch и наличии аппаратного RAID, для которого нужен модуль в initrd, воспроизводится следующий баг: система обновляется, устанавливается новое ядро, генерируется initrd, но абсолютно стандартный, без необходимых модулей RAID и т.д. После перезагрузки вы получите нерабочую систему, в которую невозможно загрузиться. Причем со старым ядром тоже! Причину этого выяснить пока не удалось, но проблема 100% воспроизводима. Временное решение такое: грузиться с Rescue Disk (например: http://www.sysresccd.org/Sysresccd-manual-en_How_to_install_SystemRescueCd_on_an_USB-stick), монтировать нужный / и /boot, туда же монтировать /proc, /dev и /sys из загруженного Rescue, делать chroot в систему и внутри уже заново запустить installkernel 2.6.x-flavour, после чего будет корректно перегенерирован initrd с нужными модулями. Отмонтируете все, перегружаетесь и получаете рабочую систему

Обновление с p5 на p6

Внимание! Наличие пакетов из сторонних репозиториев может сломать обновление! В репозитории p6 не поддерживается пакет omsclient для просмотра ЭОР. Если Вы его используете, то отложите обновление до p6, пока не выйдет новая версия пакета.

Обновите систему до последней версии.

Для этого у вас должны быть подключены репозитории p5. Если ещё не сделано, под правами пользователя root раскомментируйте (уберите в начале строки символ «#») указанные по ссылке строки для своей архитектуры в файле /etc/apt/sources.list.d/alt.list.

Выполните под правами root в командной строке:

apt-get update
apt-get dist-upgrade

Примечание: При обновлении и установке пакетов может быть показана надпись:

Do you want to continue? [Y/n]

Нажмите клавишу y и Enter или просто Enter.

Дождитесь обновления. При возникновении проблем обновления до последней версии p5 запустите

apt-get -f install

и после исправления проблем повторите обновление.

Установите утилиты

Утилита apt-repo позволяет гибко управлять источниками APT, а update-kernel — обновить или сменить ядро и обновить или установить все необходимые для него модули. Для их установки выполните:

apt-get install apt-repo update-kernel

Обновление ядра в p5

Если необходимо, обновите ядро: с некоторыми ядрами (например, 2.6.18), которые есть в p5, система, обновлённая до p6, не загрузится.

update-kernel -t std-def 

Примечание: Обновить ядро можно и после следующего пункта, уже из p6, но до обновления пакетной базы. Для этого надо обновить bootloader-utils не из репозитариев:

apt-get install http://fly.osdn.org.ua/~mike/RPM/RPMS/noarch/bootloader-utils-0.4.9-alt1.M51.1.noarch.rpm

Без дополнительных пакетов (с bootloader-utils от mike), на текущий момент, ставятся ядра ovz-el и el-smp (не забудьте прочитать пункт "Обновление ядра" ниже). Ядро std-def из p6 уже требует обновления некоторых других пакетов, до него обновляться до обновления пакетной базы не стоит.

Измените источники

Измените p5 на p6:

apt-repo rm branch p5
apt-repo add branch p6

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

[root@cas ~]# apt-repo
rpm [updates] http://ftp.altlinux.org/pub/distributions/ALTLinux/p6/branch i586 classic
rpm [updates] http://ftp.altlinux.org/pub/distributions/ALTLinux/p6/branch noarch classic

Примечание: в примере использована 32-битная архитектура (i586). Для 64-битной архитектуры вместо i586 будет x86_64.

Внимание: в связи с altbug #24479 может иметь смысл перед обновлением временно удалить пакет etckeeper, если он установлен.

Обновление пакетной базы до p6

Так как в p6 стало гораздо больше пакетов, при выполнении обычного обновления (apt-get update) появится ошибка вида Apt/TroubleShooting:

E: Dynamic MMap ran out of room

Для исправления потребуется один раз увеличить лимит при обновлении информации о пакетах:

apt-get -o APT::Cache-Limit=$(( 512 * 1024 * 1024 )) update

После этого запускайте ещё раз

apt-get dist-upgrade

Примечание 1: При обновлении и установке пакетов может быть показана надпись:

Do you want to continue? [Y/n]

Нажмите клавишу y и Enter или просто Enter.

Примечание 2: apt-get, с некоторых пор, может работать через http-прокси. Можно добавить в /etc/apt/apt.conf что-то вроде

Acquire::http::Proxy "http://proxy.my.dom:3128/";

это особенно полезно, если прокси кэширующий (squid, например), а обновлять надо не один компьютер.

Размер обновления для дистрибутивов

Внимание! Перед apt-get dist-upgrade убедитесь, что у вас достаточно дискового пространства для скачивания пакетов и установки. Понадобится около 2 ГБ!

Для освобождения места Вы можете:

  • Почистить кэш скачанных ранее пакетов:
apt-get clean
  • Удалить самые большие пакеты:
apt-get remove clipart-openclipart

(эта команда очищает 1,2 ГБ места на жёстком диске)

Список самых больших пакетов можно посмотреть командой:

rpm -qa --qf '%{size}\t%{name}\n' | sort -n

(первый столбец — размер в байтах. Самые большие пакеты находятся в конце списка).

Название дистрибутива Размер скачиваемого обновления, МБ
Альт Линукс 5.0.2 Школьный Мастер 2949
Альт Линукс 5.0.2 Школьный Юниор 1693
Альт Линукс 5.0.2 Школьный Лёгкий 519
Альт Линукс 5.0.2 Школьный Новый Лёгкий 601

Если вы используете MySQL…

Для обновления баз данных в MySQL не забудьте при запущенной службе mysqld выполнить:

mysql_upgrade

Обновление ядра

Внимание! В новых ядрах старые модули IDE-контроллеров вынесены в отдельные пакеты kernel-modules-ide-... При этом, в ядрах ovz-el и el-smp их просто нет: altbug #26229 altbug #26230. Модули ide/* можно заменить на модули pata, но initrd с ними надо создавать вручную, либо заранее дописать нужный список в /etc/initrd.mk (MODULES_ADD += ...). Так же, у некоторых ядер, в отдельные пакеты вынесены некоторые модули сетевых карт, которые ранее были в составе основного пакета, например Intel e1000e. Проверяйте перед перезагрузкой наличие модулей дисковых контроллеров и сетевых карт, если обновляется удалённая система

Ядро в ALT Linux вместе со всеми модулями обновляется командой update-kernel:

Дистрибутивы для рабочих станций:

update-kernel

Дистрибутивы для серверов (используется OpenVZ):

update-kernel -t ovz-el

Дистрибутивы для серверов (не используется OpenVZ):

update-kernel -t el-smp

При показе запроса на обновление нажмите клавишу y и Enter или просто Enter.

В серверных дистрибутивах после установки удалите пакет publish-acc-to-console:

apt-get remove publish-acc-to-console

Обновление нескольких компьютеров

Если скачанные пакеты не понадобятся, очистите кэш скачанных ранее пакетов:

apt-get clean

Если необходимо обновить несколько компьютеров, скопируйте все файлы

/var/cache/apt/archives/*.rpm

и установите командой на всех компьютерах:

rpm -Uvh *.rpm

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

Перезагрузите систему с новым ядром и новой пакетной базой.

Примечание: Можно не менять сразу ядро по-умолчанию, а использовать

lilo -R <new label>

это позволит вернуть старое ядро простым нажатием "reset".