воскресенье, 1 мая 2011 г.

Обновление Debian с Lenny до Squeeze

Согласно красивой старинной легенде можно обновить свой рабочий, но "морально устаревший" Debian при помощи следующей последовательности действий:
1. меняем в файле /etc/apt/sources.list все вхождения lenny на squeeze (в vim это делается так :%s/lenny/squeeze/gi)
2. обновляем список пакетов: sudo apt-get update
3. обновляем менеджер пакетов: sudo apt install apt dpkg aptitude
4. обновляем систему: sudo apt-get dist-upgrade
и, казалось бы, всё...Фигушки. Есть другая красивая легенда, что на этом всё только начинается.

Перво-наперво, строка:
deb http://volatile.debian.org/debian-volatile squeeze/volatile main contrib non-free
оказывается, не работает, и нужно использовать:
deb http://ftp.debian.org/debian squeeze-updates main

Далее начались чудеса при обновлении. А именно, apt-get чего-то там пошерстил часа два, а потом тихо умер, пожаловавшись на "слишком много ошибок". Выяснилось, что все беды - из-за заглючившего shared-mime-info. Глючил он примерно так:
Unknown media type in type 'all/all'
Unknown media type in type 'all/allfiles'
Unknown media type in type 'uri/mms'
Unknown media type in type 'uri/mmst'
Unknown media type in type 'uri/mmsu'
Unknown media type in type 'uri/pnm'
Unknown media type in type 'uri/rtspt'
Unknown media type in type 'uri/rtspu'
Unknown media type in type 'fonts/package'
Unknown media type in type 'interface/x-winamp-skin'
Окаалось, это - известный баг. Решением было найти в /usr/share/mime/packages/kde.xml все упоминания соответствующих типов и поудалять их. Правда, после этого ошибка всё равно осталась, но зато одна:
update-mime-database.real: undefined symbol: g_malloc0_n
Эту проблему удалось не решить, но обойти, прописав в начало скрипта:
/var/lib/dpkg/info/shared-mime-info.postinst
волшебную команду exit 0
(как оказалось впоследствии, g_malloc0_n свидетельствует о том, что не сработало обновление пакета libglib2.0-0, а старая версия <= 2.24, и эту самую g_malloc0_n не содержит. Пришлось качать пакет вручную, удалять из /usr/lib/ упоминания о libglib и обновляться apt-get -f install новый_libglib.deb)

Зато у меня теперь есть Squeeze! С дикой текстовой консолью при загрузке (в середине процесса перескакивает с tty1 на tty5, говорят, лечится заменой в файле /etc/default/bootlogd строки BOOTLOGD_ENABLE=Yes на строку BOOTLOGD_ENABLE=No - нифига), с какой-то графической байдой в grub (правда, помогает вот эта подсказка), с тормозящим KDE или неработающим Xfce, а так всё хорошо, буду изучать дальше...

И, да! Я научился отключать и восстанавливать загрузку иксов по умолчанию:
update-rc.d -f gdm remove или update-rc.d -f kdm remove
update-rc.d -f gdm defaults или update-rc.d -f kdm defaults
соответственно.

Комментариев нет:

Отправить комментарий