Обновление на openSUSE 11.2.

Сегодня успешно обновил openSUSE 11.1 до openSUSE 11.2 прямо на ходу, с помощью zypper dup. Процесс от начала обновления, до начала написания заметки в блоге занял ровно четыре часа.

Восемь шагов к совершенству:
  1. zypper mr -a -d
  2. zypper ar http://download.opensuse.org/distribution/11.2/repo/non-oss/ openSUSE-11.2-non-oss
  3. zypper ar http://download.opensuse.org/distribution/11.2/repo/oss/ openSUSE-11.2-oss
  4. zypper ar -f http://download.opensuse.org/update/11.2/ openSUSE-11.2-updates
  5. zypper refresh
  6. zypper in zypper
  7. zypper dup
  8. SuSEconfig

Замечу лишь, что при попытке сделать zypper in zypper было обновлено несколько пакетов, и после этого система оказалась в некоторой некондиции. Сначала я пробовал сделайть апдейт используя DVD, но dup сказал: "/bin/mount: error while loading shared libraries: libvolume_id.so.1: cannot open shared object file: No such file or directory". Поэтому нужно заранее позаботиться о наличии статически слинкованного mount в нужном месте, если необходимо использование DVD.

Новый zypper обладает параметром commit.downloadMode в конфигурационном файле /etc/zypp/zypp.conf. Его можно установить в позицию DownloadInAdvance, если существует недоверие к надежности используемого инетрнет-канала. Это заставит zypper сначала скачать все пакеты, затем их установить.

Все запущенные программы вместе с kde продолжали выполнятся в течение всего процесса обновления, но при попытке выйти из kde после успешного апгрейда упала парочка программ, запустив окна отчета об ошибке.

10 комментариев:

viru0 комментирует...

Вот сижу и думаю, апгрейдить или нет? Принципиальных плюсов для себя не заметил. Но КДЕ 4.3 соблазняет "на попробовать". Ты ради каких фишек обновился?

Анатолий Шиколай

Matwey V. Kornilov комментирует...

Привет, как сессия?

У большиства дистрибутивов на других машинах заканчивается(закончилось) время жизни, т.е. апдейты не выпускаются. На своем ноутбуке обновился, потому-что удобнее использовать одинаковый дистрибутив, ну и от части посмотреть "ну и насколько хорошо этот ваш zypper dup работает?". На мой взгляд 11.2 работает стабильнее чем 11.1, это я еще с альфа-версий заметил, как бы странно это не звучало.

viru0 комментирует...

Хм, ты писал что после zypper in zypper система пришла в не кондицию. У меня такого не наблюдалось, все как по маслу. сессию сдал не плохо в основном 4ки и одна 5.

Matwey V. Kornilov комментирует...

Может быть ты сразу по сети начал обновлять и не заметил? На самом деле, достаточно нелогичный шаг zypper in zypper, если бы авторы дистрибутива не рекомендовали его делать, я бы предположил, что zypper dup сам со всем справится в нужной последовательности.

Анонимный комментирует...

У меня кийборд и ЮСБ не работает. знаете как это исправить? на Грубе все нормально, а когда "логин" сразу все отключается... помогите как это решить?

Matwey V. Kornilov комментирует...

Здесь все-таки не служба поддержки и не форум. По поводу ЮСБ ничего не могу сказать, по поводу клавиатуры: я замечал один раз такую проблему — после обновления интерферировали настройки и иксовая сессия запускалась на терминале поверх уже запущенного mingetty(а не на свободном 7ом терминале), который перехватывал ввод с клавиатуры. Это выглядело действительно как "клавиатура не работает там где логин".

Unknown комментирует...

Поэтому нужно заранее позаботиться о наличии статически слинкованного mount в нужном месте

Мне вот тоже оно сказало про библиотеку. По гуглу нашёл ваше сообщение. Хотел бы уточнить, что значит "статически слинкованый"?
И можно ли такое проделать не с диском, а с его образом?
Я, собственно, и пытался с образа обновиться - добавил его как репозитарий, но в процессе обновления но его несколько раз монтировал и в какой-то момент (видимо уже снёс старый пакет, но не поставился новый) не смог смонтировать.

Matwey V. Kornilov комментирует...

Образ или физический диск в этом случае равноправны. Оба они монтируются, только используя разные устройства.
Статически слинкованный — значит статически слинкованный, т.е. во время сборки исполняемого файла все используемые им библиотеки включаются непосредственно в этот файл. Минусами являются больший по сравнению с динамической линковкой размер исполняемого файла и, как следствие, бесполезное использование оперативной памяти, во время исполнения приложения. Плюсами является отсутсвие зависимостей в виде динамических бибилиотек, в нашем случае файла libvolume_id.so. Готовых бинариков утилиты mount в последних версиях я не нашел, хотя раньше они существовали где-то в initrd. Собрать статическую версию пакета util-linux можно самостоятельно, скачав его SRPM пакет и изменив в spec-файле у скрипта ./configure. Вторым возможным решением этой проблемы могло бы послужить использование команды zypper in zypper util-linux вместо zypper in zypper. Это привело бы не только к обновлению zypper перед непосредственным обновлением, но и к обновлению mount со всеми его зависимостями. Однако, не возьмусь сейчас экспериментировать и утверждать что-либо с гарантией.

Unknown комментирует...

Провёл эксперимент на виртуалке:
1. Установил на нее openSuSE 11.1
2. Положил в одну из папок ISO-образ 11.2
3. снял снимок (чтобы откатиться)
4. Убрал все старые репозитории, добавил образ, как репозиторий.
5. zypper refresh
6. zypper in zypper
7 zypper dup
естественно на этом этапе оно сломалось с той самой ошибкой.
8. Откатил в виртуалке снимок.
9. Создал папку /upgr
10. mount -o loop my.iso /upgr - примонтировал образ в папку
11. Удалил репозитории, добавил ЭТУ ПАПКУ в качестве репозитория.
12. пункти 5, 6, 7. прошли успешно
13. SuSEconfig
14. Через КДЕ выйти не удалось - экран становился серым, а окна выбора "перезагрузка или выход" не было. пришлось в терминале писать reboot
15. Загрузился и вуаля - у меня новая суся.


А почему я спрашивал про статическую линковку - я прочитал не верно. Решил, что речь идёт о каком-то статическом монтировании образа :)

Matwey V. Kornilov комментирует...

> Провёл эксперимент на виртуалке:
> 1. Установил на нее openSuSE 11.1

И не лень было?))

> mount -o loop my.iso /upgr

Пожалуй, это самый простой способ обойти для данную проблему.