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

Ответы:


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
Вместо «неработающий», более конкретное ключевое слово, которое нужно использовать при поиске пакетов-нарушителей, - «не может быть удовлетворено».
Ультра Джон

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
    

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

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

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


Спасибо! Ваш ответ очень познавательный! Тем не менее, я исправил свою проблему, прежде чем читать ваш ответ. Я должен был включить конфликтующие PPA, а затем очистить их, чтобы сделать работу.
Vagrant232

что делает sudo apt-get purge $(dpkg -l | awk '/^rc/ { print $2 }')?
WhoKnows

1
@whoKnows Извините за поздний ответ. Это будет искать-найти и удалить все остатки, которые были отмечены для удаления, но они еще не были удалены. Вот что означает «rc».
NickTux

Это не сработало для меня, но приведенное ниже сработало
Джон Смолл

3

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


Я поддерживаю этот ответ, потому что он решил проблему. Этого было достаточно, чтобы снять флажок «Сообщество ... (вселенная)». У меня была точно такая же проблема, как описано в теме. Я обновлялся с 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

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.