Обновление openSUSE 11.2 до 11.3 M7
- 04.06.10, 02:17
Прогнав несколько раз обновление openSUSE с 11.2 до очередной "вехи"
(очередного Milestone) на виртуалке, я таки решился обновить систему на
своем ноутбуке. Напомню, на всякий случай, релиз openSUSE 11.3 выйдет 15 июля, но уже сейчас
те, кто хочет - могут обновиться до очередного тестового выпуска. То,
что выпуск тестовый означает, что его работа не гарантируется в каждый
из моментов времени. Другими словами поломаться может все что угодно в
любой момент времени ;).
Несколько тестовых прогонов на виртуалке позволили выявить несколько
подводных камней, на которые можно наткнуться при выполнении обновления
"живой" системы. О них я расскажу по ходу дела.
На моей openSUSE подключено много дополнительных репозиториев: это
конечно же разные репозитории, позволяющие воспроизводить
multimedia-файлы. К ним относятся Packman, libdvdcss и Videolan.
Поскольку этих репозиториев под openSUSE 11.3 нет - я их оставил
нетронутыми. Интересно было посмотреть - будут ли проблемы с
зависимостями при обновлении.
Зато я отключил следующие репозитории:
включаются в основной репозиторий openSUSE 11.3. Естественно, что позже,
после релиза стоит подключить эти репозитории обратно.
Затем я просто перебил номер версии openSUSE с 11.2 на 11.3 в файлах
репозиториев OSS (opensource ПО), Non-OSS и Updates. Затем выполнил
команду zypper ref , чтобы обновить информацию о репозиториях.
Теперь об обещанном подводном камне. В процессе обновления, при
изменении файлов в /etc/sysconfig , zypper вызывает SuSEconfig, для
генерации разных системных файлов в /etc . В то же время в процессе
обновления в системе меняются некоторые утилиты, которые вызываются из
SuSEconfig'a, что иногда вызывает его временную неработоспособность. Эта
"неработоспособность" приводит к тому, что процесс обновлений
прерывается и не факт, что его затем можно будет продолжить корректно.
Возможно, что к релизу этот баг подправят. Но пока работает именно так,
как я описал. К счастью, SuSEconfig можно отключить. Делается это
редактированием файла /etc/sysconfig/suseconfig. Достаточно в этом файле
изменить значение переменной ENABLE_SUSECONFIG="yes" на
ENABLE_SUSECONFIG="no" . После этого SuSEconfig работать больше не
будет. На обновленной системе его затем будет необходимо включить
обратно.
Затем, рекомендуется изменить в файле /etc/zypp/zypp.conf (если не
сделали этого раньше) параметр commit.download.mode в значение
DownloadInAdvance. Это заставит zypper выполнить обновление после
предварительного выкачивания всех пакетов.
Последний шаг перед обновлением - это убедиться, что у вас на жестком
диске достаточно места, для всех выкачиваемых пакетов. У меня объем
скачивания составил 1,4Gb. Пакеты скачиваются в каталог /var/cache/zypp.
Ну а теперь просто выполняем обновление командой zypper dup . Перед
выполнением обновления он предложит вам разрешить конфликты между
пакетами. У меня это почему-то были пакеты, связанные с NetworkManager. Я
предпочел удалить все эти пакеты. Их потом можно поставить из
обновленной системы. Затем, zypper выкачивает необходимые пакеты и
начинает выполнять обновление. У меня весь процесс обновления (без учета
времени выкачивания пакетов) занял около 40 минут (Core 2 Duo 2,1 GHz).
Достаточно быстро! По окончании процесса можно убедиться в том, что мы
действительно обновили систему:
host13:/etc/X11 # cat /etc/SuSE-release
openSUSE 11.3 Milestone 7 (x86_64)
VERSION = 11.3
После завершения обновления включаем обратно SuSEconfig и запускаем его
из командной строки: SuSEconfig (обратите внимание, что буква 'u'
маленькая). После того, как он отработал, я решил перестраховаться и
запустил еще раз mkinitrd - это скрипт, выполняющий пересборку initrd
(образа, критичного для загрузки системы). Также желательно запустить
zypper ve для дополнительной проверки системы на целостность
зависимостей.
Если вывод этих команд не содержал информации об ошибках, вводим reboot и
перезагружаем систему. После удачной (я надеюсь!) загрузки мы попадаем в
обновленную систему. В последнем Milestone разработчики openSUSE
потихоньку начинают внедрять новое оформление. Новые обои по умолчанию
видно на этом скриншоте:
Примерно такая же картинка в графическом меню grub и в GDM.
Система вроде бы пока работает достаточно стабильно. Замеченые пока
ошибки:
1. Иногда при загрузке системы разрешение внезапно устанавливается в
640х480 . У меня подозрение, что это пока KMS подглючивает.
2. Немного косячит неправильно настроенный PolicyKit - система постоянно
спрашивает root'овый пароль для перезагрузки, монтирования флешек и
перехода в спящий режим. Насколько я разобрался - причины кроются в том,
что из системы убрана поддержка HAL, а новые политики пока не написаны.
3. При выходе из спящего режима включается на полную вентилятор
процессора.
Все эти ошибки терпимые и до релиза вполне можно жить.
После обновления haldaemon остается работать в системе и его необходимо
принудительно отключить:
host13:/etc/X11 # chkconfig haldaemon off
Х-сервер теперь собран с поддержкой udev вместо HAL:
host13:~ # ldd $(which X)
linux-vdso.so.1 => (0x00007fff401ff000)
libudev.so.0 => /lib64/libudev.so.0 (0x00000036e8600000)
libcrypto.so.1.0.0 => /usr/lib64/libcrypto.so.1.0.0
(0x00000036d2800000)
libdl.so.2 => /lib64/libdl.so.2 (0x00000036d4600000)
libpciaccess.so.0 => /usr/lib64/libpciaccess.so.0
(0x00000036d3000000)
libXfont.so.1 => /usr/lib64/libXfont.so.1 (0x00000036d5200000)
libXau.so.6 => /usr/lib64/libXau.so.6 (0x00000036d6200000)
libpixman-1.so.0 => /usr/lib64/libpixman-1.so.0
(0x00000036dee00000)
libXdmcp.so.6 => /usr/lib64/libXdmcp.so.6 (0x00000036da200000)
libm.so.6 => /lib64/libm.so.6 (0x00000036d3e00000)
librt.so.1 => /lib64/librt.so.1 (0x00000036d4e00000)
libc.so.6 => /lib64/libc.so.6 (0x00000036d3a00000)
libz.so.1 => /lib64/libz.so.1 (0x00000036d4a00000)
/lib64/ld-linux-x86-64.so.2 (0x00000036d2400000)
libfreetype.so.6 => /usr/lib64/libfreetype.so.6
(0x00000036d7600000)
libfontenc.so.1 => /usr/lib64/libfontenc.so.1
(0x00000036d3400000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00000036d4200000)
Теперь для его настроек используется каталог /etc/X11/xorg.conf.d:
host13:~ # ls /etc/X11
.qtrc.lock Xmodmap.remote fs proxymngr rstart xdm
xim.d xorg.conf.d
Xmodmap Xresources lbxproxy qtrc x11perfcomp xim
xinit xs
host13:~# ls /etc/X11/xorg.conf.d/
10-evdev.conf 20-synaptics.conf 50-device.conf 50-screen.conf
90-keytable.conf
11-mouse.conf 20-wacom.conf 50-monitor.conf 50-vmmouse.conf
В данном каталоге лежат файлы, настраивающие отдельные аспекты настройки
Х-сервера. Вот, например, файл для evdev:
host13:~ # cat /etc/X11/xorg.conf.d/10-evdev.conf
#
# Catch-all evdev loader for udev-based systems
# We don't simply match on any device since that also adds
accelerometers
# and other devices that we don't really want to use. The list below
# matches everything but joysticks.
Section "InputClass"
Identifier "evdev pointer catchall"
MatchIsPointer "on"
MatchDevicePath "/dev/input/event*"
Driver "evdev"
EndSection
Section "InputClass"
Identifier "evdev keyboard catchall"
MatchIsKeyboard "on"
MatchDevicePath "/dev/input/event*"
Driver "evdev"
EndSection
Section "InputClass"
Identifier "evdev touchpad catchall"
MatchIsTouchpad "on"
MatchDevicePath "/dev/input/event*"
Driver "evdev"
EndSection
Section "InputClass"
Identifier "evdev tablet catchall"
MatchIsTablet "on"
MatchDevicePath "/dev/input/event*"
Driver "evdev"
EndSection
Section "InputClass"
Identifier "evdev touchscreen catchall"
MatchIsTouchscreen "on"
MatchDevicePath "/dev/input/event*"
Driver "evdev"
EndSection
В общем и целом все пока нравится, вроде все работает.
http://tux-the-penguin.blogspot.com/2010/05/opensuse-112-113-m7.html
(очередного Milestone) на виртуалке, я таки решился обновить систему на
своем ноутбуке. Напомню, на всякий случай, релиз openSUSE 11.3 выйдет 15 июля, но уже сейчас
те, кто хочет - могут обновиться до очередного тестового выпуска. То,
что выпуск тестовый означает, что его работа не гарантируется в каждый
из моментов времени. Другими словами поломаться может все что угодно в
любой момент времени ;).
Несколько тестовых прогонов на виртуалке позволили выявить несколько
подводных камней, на которые можно наткнуться при выполнении обновления
"живой" системы. О них я расскажу по ходу дела.
На моей openSUSE подключено много дополнительных репозиториев: это
конечно же разные репозитории, позволяющие воспроизводить
multimedia-файлы. К ним относятся Packman, libdvdcss и Videolan.
Поскольку этих репозиториев под openSUSE 11.3 нет - я их оставил
нетронутыми. Интересно было посмотреть - будут ли проблемы с
зависимостями при обновлении.
Зато я отключил следующие репозитории:
- Mozilla - в котором всегда есть сборка последнего Firefox;
- OpenOffice - назначение аналогично;
- Virtualization - последние версии kvm и qemu.
включаются в основной репозиторий openSUSE 11.3. Естественно, что позже,
после релиза стоит подключить эти репозитории обратно.
Затем я просто перебил номер версии openSUSE с 11.2 на 11.3 в файлах
репозиториев OSS (opensource ПО), Non-OSS и Updates. Затем выполнил
команду zypper ref , чтобы обновить информацию о репозиториях.
Теперь об обещанном подводном камне. В процессе обновления, при
изменении файлов в /etc/sysconfig , zypper вызывает SuSEconfig, для
генерации разных системных файлов в /etc . В то же время в процессе
обновления в системе меняются некоторые утилиты, которые вызываются из
SuSEconfig'a, что иногда вызывает его временную неработоспособность. Эта
"неработоспособность" приводит к тому, что процесс обновлений
прерывается и не факт, что его затем можно будет продолжить корректно.
Возможно, что к релизу этот баг подправят. Но пока работает именно так,
как я описал. К счастью, SuSEconfig можно отключить. Делается это
редактированием файла /etc/sysconfig/suseconfig. Достаточно в этом файле
изменить значение переменной ENABLE_SUSECONFIG="yes" на
ENABLE_SUSECONFIG="no" . После этого SuSEconfig работать больше не
будет. На обновленной системе его затем будет необходимо включить
обратно.
Затем, рекомендуется изменить в файле /etc/zypp/zypp.conf (если не
сделали этого раньше) параметр commit.download.mode в значение
DownloadInAdvance. Это заставит zypper выполнить обновление после
предварительного выкачивания всех пакетов.
Последний шаг перед обновлением - это убедиться, что у вас на жестком
диске достаточно места, для всех выкачиваемых пакетов. У меня объем
скачивания составил 1,4Gb. Пакеты скачиваются в каталог /var/cache/zypp.
Ну а теперь просто выполняем обновление командой zypper dup . Перед
выполнением обновления он предложит вам разрешить конфликты между
пакетами. У меня это почему-то были пакеты, связанные с NetworkManager. Я
предпочел удалить все эти пакеты. Их потом можно поставить из
обновленной системы. Затем, zypper выкачивает необходимые пакеты и
начинает выполнять обновление. У меня весь процесс обновления (без учета
времени выкачивания пакетов) занял около 40 минут (Core 2 Duo 2,1 GHz).
Достаточно быстро! По окончании процесса можно убедиться в том, что мы
действительно обновили систему:
host13:/etc/X11 # cat /etc/SuSE-release
openSUSE 11.3 Milestone 7 (x86_64)
VERSION = 11.3
После завершения обновления включаем обратно SuSEconfig и запускаем его
из командной строки: SuSEconfig (обратите внимание, что буква 'u'
маленькая). После того, как он отработал, я решил перестраховаться и
запустил еще раз mkinitrd - это скрипт, выполняющий пересборку initrd
(образа, критичного для загрузки системы). Также желательно запустить
zypper ve для дополнительной проверки системы на целостность
зависимостей.
Если вывод этих команд не содержал информации об ошибках, вводим reboot и
перезагружаем систему. После удачной (я надеюсь!) загрузки мы попадаем в
обновленную систему. В последнем Milestone разработчики openSUSE
потихоньку начинают внедрять новое оформление. Новые обои по умолчанию
видно на этом скриншоте:
Примерно такая же картинка в графическом меню grub и в GDM.
Система вроде бы пока работает достаточно стабильно. Замеченые пока
ошибки:
1. Иногда при загрузке системы разрешение внезапно устанавливается в
640х480 . У меня подозрение, что это пока KMS подглючивает.
2. Немного косячит неправильно настроенный PolicyKit - система постоянно
спрашивает root'овый пароль для перезагрузки, монтирования флешек и
перехода в спящий режим. Насколько я разобрался - причины кроются в том,
что из системы убрана поддержка HAL, а новые политики пока не написаны.
3. При выходе из спящего режима включается на полную вентилятор
процессора.
Все эти ошибки терпимые и до релиза вполне можно жить.
После обновления haldaemon остается работать в системе и его необходимо
принудительно отключить:
host13:/etc/X11 # chkconfig haldaemon off
Х-сервер теперь собран с поддержкой udev вместо HAL:
host13:~ # ldd $(which X)
linux-vdso.so.1 => (0x00007fff401ff000)
libudev.so.0 => /lib64/libudev.so.0 (0x00000036e8600000)
libcrypto.so.1.0.0 => /usr/lib64/libcrypto.so.1.0.0
(0x00000036d2800000)
libdl.so.2 => /lib64/libdl.so.2 (0x00000036d4600000)
libpciaccess.so.0 => /usr/lib64/libpciaccess.so.0
(0x00000036d3000000)
libXfont.so.1 => /usr/lib64/libXfont.so.1 (0x00000036d5200000)
libXau.so.6 => /usr/lib64/libXau.so.6 (0x00000036d6200000)
libpixman-1.so.0 => /usr/lib64/libpixman-1.so.0
(0x00000036dee00000)
libXdmcp.so.6 => /usr/lib64/libXdmcp.so.6 (0x00000036da200000)
libm.so.6 => /lib64/libm.so.6 (0x00000036d3e00000)
librt.so.1 => /lib64/librt.so.1 (0x00000036d4e00000)
libc.so.6 => /lib64/libc.so.6 (0x00000036d3a00000)
libz.so.1 => /lib64/libz.so.1 (0x00000036d4a00000)
/lib64/ld-linux-x86-64.so.2 (0x00000036d2400000)
libfreetype.so.6 => /usr/lib64/libfreetype.so.6
(0x00000036d7600000)
libfontenc.so.1 => /usr/lib64/libfontenc.so.1
(0x00000036d3400000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00000036d4200000)
Теперь для его настроек используется каталог /etc/X11/xorg.conf.d:
host13:~ # ls /etc/X11
.qtrc.lock Xmodmap.remote fs proxymngr rstart xdm
xim.d xorg.conf.d
Xmodmap Xresources lbxproxy qtrc x11perfcomp xim
xinit xs
host13:~# ls /etc/X11/xorg.conf.d/
10-evdev.conf 20-synaptics.conf 50-device.conf 50-screen.conf
90-keytable.conf
11-mouse.conf 20-wacom.conf 50-monitor.conf 50-vmmouse.conf
В данном каталоге лежат файлы, настраивающие отдельные аспекты настройки
Х-сервера. Вот, например, файл для evdev:
host13:~ # cat /etc/X11/xorg.conf.d/10-evdev.conf
#
# Catch-all evdev loader for udev-based systems
# We don't simply match on any device since that also adds
accelerometers
# and other devices that we don't really want to use. The list below
# matches everything but joysticks.
Section "InputClass"
Identifier "evdev pointer catchall"
MatchIsPointer "on"
MatchDevicePath "/dev/input/event*"
Driver "evdev"
EndSection
Section "InputClass"
Identifier "evdev keyboard catchall"
MatchIsKeyboard "on"
MatchDevicePath "/dev/input/event*"
Driver "evdev"
EndSection
Section "InputClass"
Identifier "evdev touchpad catchall"
MatchIsTouchpad "on"
MatchDevicePath "/dev/input/event*"
Driver "evdev"
EndSection
Section "InputClass"
Identifier "evdev tablet catchall"
MatchIsTablet "on"
MatchDevicePath "/dev/input/event*"
Driver "evdev"
EndSection
Section "InputClass"
Identifier "evdev touchscreen catchall"
MatchIsTouchscreen "on"
MatchDevicePath "/dev/input/event*"
Driver "evdev"
EndSection
В общем и целом все пока нравится, вроде все работает.
http://tux-the-penguin.blogspot.com/2010/05/opensuse-112-113-m7.html
0
Коментарі