apt-get: downgrade программ до версий из репов
GNU/Linux, UNIX, Open Source → Программное обеспечение
Вопрос к знатокам apt-get, dpkg и прочего (Debian / Ubuntu).
Я тут на днях добавил в убунте нестабильный реп Jaunty. Провел полное обновление системы (ядро, системные либы, gnome — все на свете). В результате у меня отвалился gdm и/или gnome (иксы работали нормально). Возникло подозрение, что обновились не все либы / пакеты, из-за чего наблюдается конфликт запущенных компонентов… Ну, в общем, поигравшись с ним, я решил откатиться обратно. Но не тут-то было!
Удалив репозиторий Jaunty, я сделал apt-get update, после чего надеялся, что apt-get upgrade поведет себя адекватно и предложит downgrade’ить все установленные приложения до реально доступных версий из ныне существующих в sources.list репозитариев. А фиг — он ничего мне не предложил. Попробовал всякие dpkg, aptitude, команду reinstall — ничего из этого не делает указанного (задача была, напомню, все пакеты, обновленные до jaunty, откатить до стабильных версий из intrepid, т.е. тех репозиториев, которые сейчас доступны в sources.list).
В итоге, мне пришлось делать мегаизвращение в виде:
for i in `dpkg -l | grep ^ii | awk '{print $2}'|xargs`; do ver=""; ver=`apt-cache showpkg $i|grep ' (/var/lib/dpkg/status)' |grep -v intrepid`; if [ "$ver" != "" ]; then echo "$i is bad: $ver"; fi; done | grep 'is bad' | awk '{print $1}' > ~/bad_packages.txt
Потом хотел удалять пакеты из списка bad_packages.txt и устанавливать заново — циклом с apt-get remove && install (чтобы ставились уже те версии, которые доступны в стабильных репах). Оказалось, это довольно унылая затея из-за того, что каждый раз тянутся все зависимости и при удалении, и при установке — в итоге, процесс затягивается на бесконечное время и по много раз делает одно и то же.
Тогда я начал делать «проще»: брал с packages.ubuntu.com стабильные версии ключевых пакетов, указанных в bad_packages.txt, ставил их через dpkg -i (он делает downgrade без вопросов — только с warning’ом ;-)). В общем, тот еще дебилизм — честное слово.
А теперь, внимание, вопрос: я тупой и чего-то не знаю / не нашел или apt-get/dpkg/… не умеют такого? Если умеют, то как? Мне уже неактуально, но на будущее хочется знать для кругозора и на всякий случай.
Последние комментарии
- OlegL, 17 декабря в 15:00 → Перекличка 21
- REDkiy, 8 июня 2023 года в 9:09 → Как «замокать» файл для юниттеста в Python? 2
- fhunter, 29 ноября 2022 года в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
- Иванн, 9 апреля 2022 года в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
- Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1
А всякие clean ты делал?
Делал. И даже ручками проверял содержимое /var/cache/apt/archives, если правильно помню…
Насколько мне известно, downgrade можно сделать только так:
$ apt-get install -f =