Я по ошибке включил репозиторий Pre-release updates (natty-предложил), а затем обновил все пакеты.
Как я могу отменить это?
Вот результаты теста из инструкций @ enzotib и результаты теста из моих инструкций .
Я по ошибке включил репозиторий Pre-release updates (natty-предложил), а затем обновил все пакеты.
Как я могу отменить это?
Вот результаты теста из инструкций @ enzotib и результаты теста из моих инструкций .
Ответы:
Вот более общий способ возврата из локально установленных пакетов, предложенных пакетов и пакетов с обратным портом в канал стабильных обновлений. Хотя остальные ответы верны и работают аналогичным образом, я думаю, что это более элегантный подход.
-proposed
или -backports
в ваших /etc/apt/sources.list
и /etc/apt/sources.list.d/*
файлов.Добавьте файл apt-предпочтений, например, /etc/apt/preferences.d/99-back-to-stable-updates
содержащий ( precise
здесь - замените вашей версией):
Package: *
Pin: release a=precise
Pin-Priority: 1001
Package: *
Pin: release a=precise-updates
Pin-Priority: 1001
Package: *
Pin: release a=precise-security
Pin-Priority: 1001
Package: *
Pin: release a=precise-proposed
Pin-Priority: -10
Package: *
Pin: release a=precise-backports
Pin-Priority: -10
Это пиннинг> 1000 составит склонное сила понижения рейтинга на пакеты из этого канала и приоритет <0 на -proposed
и -backports
каналах будут делать удалять любые дополнительные пакеты тоже.
Теперь беги
sudo apt-get update
sudo apt-get dist-upgrade
Осмотрите предложенное решение, которое вам даст, и если вы считаете, что все в порядке, то примите это. Если вам нужно выяснить, почему и на какую версию он будет понижен, отметьте это, apt-cache policy packagename
чтобы узнать, какие версии доступны и что apt решит, является ли кандидатом на установку.
Удалите /etc/apt/preferences.d/99-back-to-stable-updates
файл еще раз, так как он больше не нужен.
Спасибо mlind
на форумах Ubuntu за эту страсть к закреплению в его посте более 5 лет назад - но сегодня он мне очень помог.
На этой странице предполагается, что закрепление Apt может использоваться для понижения версии всего хранилища, используя тот факт, что приоритеты выводов выше 1000 могут вызвать понижение качества пакета .
Тогда одним из решений может быть временное увеличение на 1000 приоритетов по умолчанию для всех файлов пакетов, кроме тех, которые находятся в natty-proposed
репозитории:
apt-cache policy | awk '
/^ [0-9]+ / {
p = $1;
getline;
r = $0;
if (r !~ /a=natty-proposed/) p += 1000;
print "Package: *\nPin: " r "\nPin-priority: " p "\n"
}
' | sudo tee /etc/apt/preferences.d/downgrade-from-natty-proposed
(Примечание. Этот метод не может повысить приоритет файлов пакетов, чьи поля выпуска содержат запятые. См. Этот вопрос .)
После этого apt-get --simulate upgrade
может использоваться для проверки на успешное обнаружение понижения. После подтверждения того, что обнаружены правильные оценки, sudo apt-get upgrade
должно быть все, что необходимо для выполнения оценки.
Когда понижение версии будет завершено, используйте Software Sources, чтобы отключить хранилище предварительных обновлений (предложено natty) , а затем удалите временное увеличение приоритета:
sudo rm /etc/apt/preferences.d/downgrade-from-natty-proposed
Наконец, перезагрузите компьютер, чтобы все запущенные программы были его устаревшими версиями.
Я не могу найти более простое решение, чем следующее. Все же надеясь, что кто-то получит лучший ответ.
Следующий скрипт, который может выполнить понижение
#!/bin/bash
# get a list of installed packages
dpkg --get-selections | awk '{ print $1 }' > all-packages
# run apt-cache policy on each of them, then elaborate with the awk script
apt-cache policy $(<all-packages) |
./get-prev-pkg-vers >old-versions
# install previous version of packages
sudo apt-get --simulate install $(< old-versions)
awk
Сценарий, названный get-prev-pkg-vers
нижеследовал
#!/usr/bin/awk -f
/^[^ ]/ {
package = $1
gsub(":", "", package)
search_next = 0
}
/^ [^ ]/ {
installed = 0
version = $1
if (search_next == 1) {
print package "=" version
search_next = 0
}
}
/^ \*\*\* [^ ]/ {
installed = 1
}
/^ [^ ]/ {
branch = $3
if (installed == 1 && branch ~ /proposed/) {
search_next = 1
}
installed = 0
}
При запуске сценария предложенное хранилище НЕ должно быть отключено.
Не забудьте установить исполняемый бит в обоих скриптах.
Проблема этого подхода заключается в том, что все устаревшие пакеты будут установлены как установленные вручную (в том числе и те, которые были установлены автоматически).
Для безопасности добавьте --simulate
опцию apt-get
в конец скрипта bash.
Отмена всех пакетов из предложенного natty, вероятно, не нужна: большинство пакетов скоро будут обновлены до тех же версий через natty-updates.
В случае, если у вас есть проблема с одним пакетом, вы можете вернуть этот пакет, используя метод, представленный родителем (после отключения -proposed), или можете использовать sudo aptitude install packagename/natty
. Но что еще более важно, вы должны сообщить об ошибке в пакете. Мало кто на самом деле проверяет предложенное Natty, и если возникают регрессии (= новые проблемы), о них обязательно нужно сообщить. В противном случае они могут оказаться в обновлениях для всех пользователей Ubuntu. Так что если у вас есть какие-либо проблемы, пожалуйста, сообщите.
В Synaptic вы можете отключить хранилище для предложенных и обновить ваши источники. Затем вы увидите, что все пакеты, которые были обновлены, отображаются как локально установленные (поскольку их больше нет в репозиториях).
Теперь вам придется «понизить» эти пакеты. Выберите один за другим, и в верхнем меню выберите:
package > force version
(или Control + E)
Появится меню с доступными опциями. Я бы выбрал нижний номер версии для каждого пакета. Если вы допустили ошибку и в обычных репозиториях появилась более новая версия, она будет исправлена в более позднем обновлении.
Быстрое решение состоит в том, чтобы использовать команду purge-ppa, указывающую на встроенный репозиторий, но не знаю, будет ли он работать с ними, я использовал его только для очистки внешних пакетов ppa и downgrade до официальных версий Ubuntu. Я не рекомендую вам делать это в этом случае, может быть, кто-то знает, если это безопасный метод ...
Я предложил предоставить функцию для понижения всех proposed
пакетов с помощью простой поддерживаемой команды, эквивалентной по ppa-purge
адресу https://bugs.launchpad.net/ubuntu/+source/software-properties/+bug/1810499, поскольку сообщения, представленные здесь, по-прежнему представляют состояние системы.
«предложено» - понятно?