Я помилково ввімкнув сховище попередніх випусків оновлень (запропоновано natty), а потім оновив усі пакети.
Як я можу скасувати це?
Ось результати тестування з інструкцій @ enzotib та результати тестування з моїх інструкцій .
Я помилково ввімкнув сховище попередніх випусків оновлень (запропоновано natty), а потім оновив усі пакети.
Як я можу скасувати це?
Ось результати тестування з інструкцій @ enzotib та результати тестування з моїх інструкцій .
Відповіді:
Ось більш загальний спосіб повернення з локально встановлених пакетів, запропонованих та підтримуваних пакетів до стабільного + оновлення каналу. Хоча інші відповіді правильні і працюють аналогічно, я вважаю, що це більш елегантний підхід.
-proposed
або -backports
в ваших /etc/apt/sources.list
і /etc/apt/sources.list.d/*
файлах.Додайте файл налаштувань, наприклад, /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 можна використовувати для поновлення з цілого сховища, використовуючи той факт, що пріоритети PIN-кодів вище 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
має бути все, що потрібно для виконання пониження.
Коли поновлення завершено, використовуйте джерела програмного забезпечення для відключення сховища попередніх випусків оновлень (запропонованих 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-оновлення.
Якщо у вас є проблема з одним пакетом, ви можете повернути цей пакет, використовуючи метод darent, який подається (після відключення - запропоновано), або ви можете використовувати sudo aptitude install packagename/natty
. Але що ще важливіше, ви повинні подати помилку на пакет. Мало хто насправді випробовує запропоновану натуральність, і якщо трапляються регресії (= нові проблеми), про них обов'язково потрібно повідомити. Інакше вони можуть опинитися в оновленнях для всіх користувачів ubuntu. Тож якщо у вас є якісь проблеми, повідомте про це.
У синаптичному відношенні ви можете відключити сховище для запропонованих і оновити свої джерела. Тоді ви побачите, що всі пакунки, ніж оновлені, відображаються як локально встановлені (оскільки вони вже не є репост).
Тепер вам доведеться "знизити" ці пакунки. Виберіть по черзі, а у верхньому меню вибрали:
package > force version
(або Control + E)
З'явиться меню з доступними параметрами. Я вибрав би нижчий номер версії для кожного пакета. Якщо ви помилитесь і в звичайних репостах є нова версія, вона буде вирішена в подальшому оновлення.
Швидким рішенням буде використання команди purge-ppa, що вказує на перенесений сховище, але не знаю, чи буде це працювати з ними, я використовував його лише для очищення зовнішніх пакетів ppa та поновлення пакетів до офіційних версій ubuntu. Я не рекомендую вам це робити в цьому випадку, можливо, хтось знає, чи це безпечний метод ...
Я запропонував надати функцію пониження всіх proposed
пакетів з простою підтримуваною командою, рівносильною ppa-purge
на https://bugs.launchpad.net/ubuntu/+source/software-properties/+bug/1810499, оскільки публікації тут все ще представляють собою стан системи.
"запропоновано" - отримаєте?