Як виправити проблему "Неможливо розрахувати оновлення" під час оновлення з 12.04 до 12.10?


20

Я намагаюся оновити до 12.10 з моменту виходу сьогодні, але я продовжую зустрічатися з цією помилкою:

An unresolvable problem occurred while calculating the upgrade:
E:Unable to correct problems, you have held broken packages.
This can be caused by:  
 * Upgrading to a pre-release version of Ubuntu  
 * Running the current pre-release version of Ubuntu  
 * Unofficial software packages not provided by Ubuntu

Я спробував оновити все встановлене на даний момент програмне забезпечення, видаливши всі додаткові PPA, знизивши кількість файлів, встановлених з xpa edgers 'ppa, але мені не вдалося вирішити проблему.

Відповіді:


7

Я виправив шахту, видаливши встановлені пакетами ppa, використовуючи ppa-purge

Я знав, що мені потрібно це зробити, перевіривши журнали в / var / log / dist-upgrade / в кінці файлу apt.log, ви побачите, що це бентежить. У моєму це був драйвер відео, і я працював декількома оновленнями, тому я зробив:

sudo ppa-purge ppa:ubuntu-x-swat/x-updates
sudo ppa-purge ppa:unity-team/staging
sudo ppa-purge ppa:webapps/preview
sudo ppa-purge ppa:nilarimogard/webupd8
sudo ppa-purge ppa:scopes-packagers/ppa
sudo ppa-purge ppa:glasen/intel-driver

останній - водій глазуру - здається, зробив для мене трюк. Зараз оновлення триває як звичайне.


23

Як зазначено тут , видалення джерел PPA працює не кожен раз.

Потрібно видалити пакети, що порушили правопорушення. їх можна знайти за допомогою:

grep Broken /var/log/dist-upgrade/apt.log

Моя була пакетом xorg. Я видалив його командою:

sudo apt-get remove xserver-xorg-video-all

і тоді оновлення може продовжуватися.


4
Дякуємо, що вказали, де були зламані пакети. Це було запорукою мого успішного оновлення до 13.10.
DaShaun

Так! Все було кузова xserver-xorg- *. ( apt-get remove xserver-xorg-*)
K-Gun

1
Замість "зламаного", більш конкретне ключове слово, яке слід використовувати при пошуку пакетів, що порушують правопорушення, "не може бути задоволений".
ultrajohn

1
Я отримую дуже довгий список з близько 100 пакетів.
хтознає

У мене було понад 900, і навіть декілька годин вибивання їх за допомогою детективної роботи на apt.log лише мені досягло близько 350. Знаючи про проблему в моєму випадку, це було все те, що я встановлював вручну за ці роки, я нарешті викривився і просто видалив усі записи "Встановлені (локальні чи застарілі)", перелічені на вкладці "Статус" Synaptic. Так, я знав, що потрібно буде chroot'ing з Live CD, щоб вдало отримати всі речі, щоб знову отримати операційну систему - але це справді спрацювало.
Пленус Френклі

16

Для оновлення випуску "NonPainful".

  • Перш ніж продовжити, перевірте, чи доступна нова версія для оновлення. Відкрийте термінал і дайте цю команду

    do-release-upgrade -c

Якщо так, продовжуйте:

  • Видаліть усі додані зовнішні PPA.

    З програмного забезпечення Центр> Правка> Джерела програмного забезпечення> Інше програмне забезпечення. Не тільки зніміть галочку, але видаліть їх.

  • Потім закрийте всі графічні програми та відкрийте лише термінал. (Повноекранний краще) Дайте наступні команди

    sudo apt-get update 
    sudo apt-get dist-upgrade
    
  • Потім дайте команди внизу, щоб трохи провести господарство

    sudo apt-get --purge autoremove
    sudo apt-get autoclean
    sudo apt-get purge $(dpkg -l | awk '/^rc/ { print $2 }')
    
  • Потім ви можете продовжити оновлення

    sudo do-release-upgrade
    

Не переглядайте та не відкривайте вікна чи програми під час оновлення.

Будьте терплячі до завершення оновлення.

Дружні: Не бігайте (або не поспішайте) оновлюватись з першого дня. Оновіть з другого дня (краще).


Дякую! Ваша відповідь надзвичайно виховна! Однак я вирішив свою проблему, перш ніж прочитати вашу відповідь. Мені довелося ввімкнути конфліктні договори, а потім очистити їх, щоб виконати роботу.
Vagrant232

що робить sudo apt-get purge $(dpkg -l | awk '/^rc/ { print $2 }')?
хтознає

1
@whoKnows Вибачте за пізню відповідь. Це дозволить знайти-знайти та видалити всі залишки, які були позначені для видалення, але вони ще не були видалені. Ось що означає 'rc'.
NickTux

Це не спрацювало для мене, але той, що нижче, зробив
Джон Малий

3

Мені вдалося вирішити проблему, не видаляючи жодних пакетів. У налаштуваннях менеджера оновлень я зняв усі параметри програмного забезпечення Ubuntu, залишивши лише перше поле - "Вільне програмне забезпечення з відкритим кодом (основне) з підтримкою Canonical".


Я підтримую цю відповідь, оскільки це вирішило проблему. Це було досить, щоб зняти прапорець "Підтримувані громадою ... (Всесвіт)". У мене була точно така ж проблема, як описана в темі. Я проходив модернізацію з 14.04 до 16.04.1 за допомогою «Оновлення програмного забезпечення».
Мог Лі

Це працювало для мене, коментарі щодо очищення пакетів не були.
Джон Малий

2

У мене з’явилося це повідомлення про помилку щодо оновлення, хоч і між різними версіями - я робив 14,04 Довірливо -> 16.04 Xenial - але я думаю, що ця порада може бути корисною іншим людям, які отримують ту саму помилку, оскільки це знадобило мені віки, щоб зрозуміти, і ця відповідь є чіткою в Google.

Важливо перевірити, чи є помилка в /var/log/dist-upgrade/main.logмоєму випадку, виникла помилка, яка сказала, що postgresql-9.3-postgis-2.1її видалено в чорний список, і процес оновлення намагався її видалити. Видалення цього пакета дозволить мені оновити.

(nb /var/log/dist-upgrade/apt.logможе ввести вас в оману, вказавши пакети "Зламані", які фактично не блокують оновлення.)

На це вказується також у подібному питанні та відповіді: /ubuntu//a/541406/13868

Між іншим, sudo ubuntu-bug ubuntu-release-upgrader-coreпісля запущеного оновлення можна виявити подібні проблеми та відкрити відповідний звіт про помилку у вашому веб-браузері - ось що допомогло мені знайти проблему.


-4
sudo sed -i 's/raring/saucy/' /etc/apt/sources.list
sudo apt-get dist-upgrade

що працювало на мене.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.