Как исправить проблему «Невозможно рассчитать обновление» при обновлении с 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, понизить версию файлов, установленных из ppa xorg edgers, но мне не удалось решить эту проблему.

Vagrant232
источник

Ответы:

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

последний - водитель «гласена» - похоже, справился со мной. Обновление теперь идет как обычно.

user92965
источник
23

Как указано здесь , удаление источников PPA не работает каждый раз.

Вам нужно удалить оскорбительные пакеты. Вы можете найти их с помощью:

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

У меня был пакет xorg. Я удалил его с помощью команды:

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

и тогда обновление может продолжиться.

Massimo
источник
4
Спасибо за указание ГДЕ сломанные пакеты были. Это было ключом к моему успешному обновлению до 13.10.
DaShaun
Да! Все было в пользу xserver-xorg- *. ( apt-get remove xserver-xorg-*)
K-Gun
1
Вместо «неработающий», более конкретное ключевое слово, которое нужно использовать при поиске пакетов-нарушителей, - «не может быть удовлетворено».
Ультра Джон
1
Я получаю очень длинный список из примерно 100 пакетов.
WhoKnows
У меня было более 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
    

Не перемещайтесь и не открывайте окна или программы во время обновления.

Будьте терпеливы до завершения обновления.

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

NickTux
источник
Спасибо! Ваш ответ очень познавательный! Тем не менее, я исправил свою проблему, прежде чем читать ваш ответ. Я должен был включить конфликтующие PPA, а затем очистить их, чтобы сделать работу.
Vagrant232
что делает sudo apt-get purge $(dpkg -l | awk '/^rc/ { print $2 }')?
WhoKnows
1
@whoKnows Извините за поздний ответ. Это будет искать-найти и удалить все остатки, которые были отмечены для удаления, но они еще не были удалены. Вот что означает «rc».
NickTux
Это не сработало для меня, но приведенное ниже сработало
Джон Смолл
3

Мне удалось решить проблему без удаления каких-либо пакетов. В настройках диспетчера обновлений я снял все опции программного обеспечения Ubuntu, оставив только первый флажок - «Бесплатное программное обеспечение с открытым исходным кодом и основной поддержкой Canonical».

macflav
источник
Я поддерживаю этот ответ, потому что он решил проблему. Этого было достаточно, чтобы снять флажок «Сообщество ... (вселенная)». У меня была точно такая же проблема, как описано в теме. Я обновлялся с 14.04 до 16.04.1 с «Software Updater».
Мауг Ли
Это сработало для меня, комментарии о чистке пакетов не сделали.
Джон Смолл
2

У меня было это сообщение об ошибке при обновлении, хотя между разными версиями - я делал 14.04 Trusty -> 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

это сработало для меня.

Jirobo
источник