Как вы знаете, стабильная версия Debian всегда стабильна, как кирпич.
Тестирование становится таковым только во второй половине пребывания в тестировании.
Что делать, если у вашего любимого Debian Lenny в source.list было написано всё о тестировании, а когда Lenny стал стабильным 14 февраля, ваша система обновилась до Squeeze, тем самым принёс кучу мелких и неприятных ошибок? Даунгрейд официально не поддерживается — но это не значит, что это невозможно.
Инструкцию по переходу на более раннюю версию с помощью Squeeze я не нашел (все инструкции довольно старые), поэтому решил написать эту.
Итак, для начала нам нужно зайти в /etc/apt/sources.list и заменить test и сжать на стабильный, приведя всё примерно к такому:
Итак, сначала нам нужно понять apt-pinning. Создайте файл /etc/apt/preferences с похожим содержимым:deb mirror.yandex.ru/debian stable main contrib non-free deb security.debian.org stable/updates main contrib non-free
Таким образом, приоритет будет отдан пакетам из стабильного репозитория.Package: * Pin: release a=stable Pin-Priority: 1001 Package: * Pin: release a=testing Pin-Priority: 60 Package: * Pin: release a=unstable Pin-Priority: 50
Теперь обновляем информацию о пакете:
И мы делаем первую попытку понизить версию:$ sudo apt-get update
Если все пройдет хорошо, то нам покажут, что необходимо понизить версию около тысячи пакетов, удалить несколько десятков (причем среди них могут быть не только какие-то неважные вещи, но и довольно используемый софт, в моем случае — gedit и deluge).$ sudo apt-get dist-upgrade
.
Ничего, добавим позже).
Соглашаемся, ряд пакетов понижается, сталкиваемся с первой ошибкой:
Мы относимся к этому, в общем-то, наугад. В некоторых случаях это помогает:dpkg: error processing /var/cache/apt/archives/gstreamer0.10-plugins-good_0.10.8-4.1~lenny1_i386.deb (--unpack): trying to overwrite `/usr/lib/gstreamer-0.10/libgstcdio.so', which is also in package gstreamer0.10-plugins-ugly dpkg-deb: subprocess paste killed by signal (Broken pipe)
Некоторые из них можно вылечить с помощью Synaptic: либо «Редактировать» > «Поврежденные пакеты», либо использовать фильтр «Поврежденные пакеты» и пытаться удалить/переустановить по одному.$ sudo dpkg -i --force-overwrite /var/cache/apt/archives/gstreamer0.10-plugins-good_0.10.8-4.1~lenny1_i386.deb
Часто установка с --force-overwrite завершается неудачно из-за неудовлетворенных зависимостей:
Что ж, давайте установим зависимости:$ sudo dpkg -i --force-overwrite /var/cache/apt/archives/gconf2-common_2.22.0-1_all.deb
dpkg - warning: downgrading gconf2-common from 2.26.0-1 to 2.22.0-1. (Reading database .
248673 files and directories currently installed.) Preparing to replace gconf2-common 2.26.0-1 (using .
/gconf2-common_2.22.0-1_all.deb) .
Unpacking replacement gconf2-common .
dpkg: dependency problems prevent configuration of gconf2-common: gconf2-common depends on ucf; however: Package ucf is not configured yet. dpkg: error processing gconf2-common (--install): dependency problems - leaving unconfigured Errors were encountered while processing: gconf2-common
.$ sudo dpkg -i --force-overwrite /var/cache/apt/archives/ucf_3.0016_all.deb
(Reading database .
248668 files and directories currently installed.) Preparing to replace ucf 3.0016 (using .
/archives/ucf_3.0016_all.deb) .
Unpacking replacement ucf .
Setting up ucf (3.0016) .
Processing triggers for man-db .
и снова устанавливаем сам пакет:
Есть пакеты, зависимости для которых мы не можем удовлетворить — они появились только в Squeeze. Это значит, что они нам просто не нужны:$ sudo dpkg -i --force-overwrite /var/cache/apt/archives/gconf2-common_2.22.0-1_all.deb
(Reading database .
248668 files and directories currently installed.) Preparing to replace gconf2-common 2.22.0-1 (using .
/gconf2-common_2.22.0-1_all.deb) .
Unpacking replacement gconf2-common .
Setting up gconf2-common (2.22.0-1) .
Replacing config file /etc/gconf/2/path with new version
Если от них что-то зависит — отлично, сначала удалите зависимый пакет, потом вернитесь к этому.sudo dpkg --remove libnm-util1
Пробравшись через первую (большую) порцию ошибок, возобновляем нашу работу.
и повторите процедуру.$ sudo apt-get dist-upgrade
В результате мы имеем вполне нормальный Debian Lenny. Хотя, конечно, возможны проблемы.
В моем случае проблемы возникли с библиотекой /usr/lib/libgssapi_krb5.so.2. Без него невозможно было войти (кроме как в безопасном режиме), а некоторые программы не работали.
Пришлось взять эту библиотеку из Squeeze и поставить в Lenny — все работало отлично.
Теги: #установка Linux #Debian #понижение версии #понижение версии #Squeeze #lenny
-
Как Заменить Hr Роботом?
19 Oct, 24 -
Трекбар Для Работы С Датами
19 Oct, 24 -
Podthings, Выпуск 27
19 Oct, 24