Вчера столкнулся с необходимостью даунгрейда Ubuntu — с Jaunty Jackalope до Intrepid Ibex. Причиной были неработающие драйвера ATI (в очередной раз изменился ABI у XServer).
Как ни странно, но считается, что даунгрейд невозможен. Тем не менее, у меня получилось. Тяжело, но возможно.
Первое, что нужно сделать, это убрать репозитории Jaunty из /etc/apt/sources.list
и добавить туда репозитории Intrepid. В моём случае это было так (YMMV):
deb http://debian.sevstar.net/ubuntu-security intrepid-updates main restricted universe multiverse
deb http://debian.sevstar.net/ubuntu-security intrepid-security main restricted universe multiverse
deb http://ua.archive.ubuntu.com/ubuntu/ intrepid main universe restricted multiverse
deb http://security.ubuntu.com/ubuntu/ intrepid-security universe main multiverse restricted
deb http://ua.archive.ubuntu.com/ubuntu/ intrepid-updates universe main multiverse restricted
deb http://ua.archive.ubuntu.com/ubuntu/ intrepid-proposed universe main multiverse restricted
deb http://ua.archive.ubuntu.com/ubuntu/ intrepid-backports universe main multiverse restricted
Затем нужно создать файл /etc/apt/preferences
:
Pin: release a=intrepid
Pin-Priority: 9000
Очень важно, чтобы Pin-Priority было больше 1000. Смысл таков: мы указывем APT, что нам нужны пакеты из Intrepid (release a=intrepid
), причём нужны так сильно, что при необходимости пакеты с большей версией нужно даунгрейдить до версии Intrepid.
Удаляем закэшированные версии пакетов и обновляем список пакетов из репозиториев:
apt-get update
Затем идёт самое сложное:
Важно! Использовать нужно именно apt-get
!
С первого раза не сработает. apt-get
выдаст что-то вроде (пример для одного пакета, причём версии приведены для Hardy, ибо даунгрейд я уже успешно сделал):
Зависит: libgomp1 (>= 4.3.2-1ubuntu12) но 4.2.3-2ubuntu7 будет установлен
В этом случае на помощь приходит aptitude
, ибо он умеет решать проблемы с битыми пакетами.
Для прмера выше потребуется выполнить
aptitude install libgomp1=4.2.3-2ubuntu7
aptitude
будет предлагать варианты решения, Вам нужно решать, какой из них подходит лучше. Иногда конфликты придется решать вручную. Тяжело, но возможно.
Опять же, это решение подходит только в том случае, когда переустановка системы по той или иной причине невозможна.
После того, как dpkg -l | egrep "^ii" | egrep -v "skype|пакеты|установленные|вручную" | awk '{ print $2; }'| xargs apt-get install -y --force-yes
успешно выполнится, нужно сделать следующее:
aptitude update
aptitude safe-upgrade
Поздравляю, Вы успешно выполнили даунгрейд!