Jak rozwiązać problem „Nie można obliczyć aktualizacji” podczas aktualizacji z 12.04 do 12.10?

20

Staram się uaktualnić do wersji 12.10, odkąd została wydana dzisiaj, ale wciąż napotyka ten błąd:

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

Próbowałem zaktualizować wszystkie aktualnie zainstalowane oprogramowanie, usunąć wszystkie dodatkowe PPA, obniżyć liczbę plików zainstalowanych z ppa xorg edgerów, ale nie byłem w stanie rozwiązać problemu.

Vagrant232
źródło

Odpowiedzi:

7

Naprawiłem mój, usuwając pakiety ppa, które zainstalowałem przy użyciu ppa-purge

Wiedziałem, że muszę to zrobić, sprawdzając logi w / var / log / dist-upgrade / na końcu pliku apt.log, a zobaczysz, co go myliło. W moim przypadku był to sterownik wideo i korzystałem z kilku aktualizacji, więc:

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

ostatni - kierowca glasen - chyba zrobił mi to. Aktualizacja przebiega teraz normalnie.

użytkownik92965
źródło
23

Jak stwierdzono tutaj , usuwanie źródeł PPA nie działa za każdym razem.

Musisz odinstalować szkodliwe pakiety. możesz je znaleźć za pomocą:

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

Mój był pakietem xorg. Usunąłem go za pomocą polecenia:

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

a następnie aktualizacja może być kontynuowana.

Massimo
źródło
4
Dziękujemy za wskazanie GDZIE były uszkodzone paczki. To był klucz do mojej udanej aktualizacji do 13.10.
DaShaun,
Tak! Wszystko było dzięki xserver-xorg- *. ( apt-get remove xserver-xorg-*)
K-Gun,
1
Zamiast „zepsuty” bardziej szczegółowym słowem kluczowym, które należy zastosować przy wyszukiwaniu szkodliwych pakietów, jest „nie można spełnić”.
ultrajohn
1
Otrzymuję bardzo długą listę około 100 paczek.
whoKnows,
Miałem znacznie ponad 900, a nawet kilka godzin uśmiercenia ich za pomocą detektywistycznej pracy na apt.log doprowadziło mnie do około ~ 350. Wiedząc, że problemem w moim przypadku były wszystkie rzeczy, które instalowałem ręcznie przez lata, w końcu się zapuściłem i po prostu usunąłem wszystkie wpisy „Zainstalowane (lokalne lub przestarzałe)” wymienione w zakładce „Status” Synaptic. Tak, wiedziałem, że będzie to wymagało chroot'owania z Live CD, aby apt-get wszystkie rzeczy, aby ponownie uzyskać system operacyjny - ale działało.
Plenus Franckly,
16

Aby uzyskać aktualizację wersji „NonPainful”.

  • Przed kontynuowaniem sprawdź, czy nowa wersja jest dostępna do aktualizacji. Otwórz terminal i wydaj to polecenie

    do-release-upgrade -c

Jeśli tak, kontynuuj:

  • Usuń wszystkie dodane zewnętrzne PPA.

    Z Centrum oprogramowania> Edycja> Źródła oprogramowania> Inne oprogramowanie. Nie tylko odznacz, ale usuń je.

  • Następnie zamknij wszystkie aplikacje graficzne i otwórz tylko terminal. (Pełny ekran jest lepszy) Podaj poniższe polecenia

    sudo apt-get update 
    sudo apt-get dist-upgrade
    
  • Następnie wydaj poniższe polecenia, aby zrobić trochę sprzątania

    sudo apt-get --purge autoremove
    sudo apt-get autoclean
    sudo apt-get purge $(dpkg -l | awk '/^rc/ { print $2 }')
    
  • Następnie możesz przystąpić do aktualizacji

    sudo do-release-upgrade
    

Nie nawiguj ani nie otwieraj okien ani programów podczas aktualizacji.

Bądź cierpliwy do czasu zakończenia aktualizacji.

Przyjazny: Nie biegaj (ani nie spiesz się), aby dokonać aktualizacji od pierwszego dnia. Uaktualnij od drugiego lub trzeciego dnia (lepiej).

NickTux
źródło
Dziękuję Ci! Twoja odpowiedź jest niezwykle pouczająca! Naprawiłem jednak problem przed przeczytaniem Twojej odpowiedzi. Musiałem włączyć konfliktowe umowy PPA, a następnie wyczyścić je, aby wykonać zadanie.
Vagrant232
Co ma sudo apt-get purge $(dpkg -l | awk '/^rc/ { print $2 }')zrobić?
whoKnows,
1
@whoKnows Przepraszamy za późną odpowiedź. Spowoduje to wyszukanie i usunięcie wszystkich resztek, które zostały oznaczone do usunięcia, ale nie zostały jeszcze usunięte. To właśnie oznacza „rc”.
NickTux
Nie działało to dla mnie, ale to poniżej
John Small
3

Udało mi się rozwiązać problem bez usuwania pakietów. W ustawieniach menedżera aktualizacji odznaczyłem wszystkie opcje oprogramowania Ubuntu, pozostawiając zaznaczone tylko pierwsze pole - „Bezpłatne oprogramowanie open source (główne) obsługiwane przez Canonical”).

macflav
źródło
Głosuję za odpowiedzią, ponieważ rozwiązała problem. Wystarczyło odznaczyć opcję „Wspólnota ... (wszechświat)”. Miałem dokładnie ten sam problem, co opisany w temacie. Uaktualniałem z 14.04 do 16.04.1 z „Software Updater”.
Maug Lee
Dla mnie to zadziałało, komentarze na temat usuwania pakietów nie zadziałały.
John Small,
2

Miałem ten komunikat o błędzie podczas aktualizacji, chociaż między różnymi wersjami - robiłem Trusty 14.04 -> 16.04 Xenial - ale myślę, że ta wskazówka może być przydatna dla innych ludzi, którzy dostają ten sam błąd, ponieważ zajęło mi wieki, aby zrozumieć, i ta odpowiedź pojawia się w Google.

Ważne jest, aby sprawdzić, czy jest jakiś błąd /var/log/dist-upgrade/main.log- w moim przypadku wystąpił błąd, mówiąc, że postgresql-9.3-postgis-2.1usunięcie go z czarnej listy, a proces aktualizacji próbował go usunąć. Usunięcie tego pakietu pozwoli mi zaktualizować.

(nb /var/log/dist-upgrade/apt.logmoże wprowadzić Cię w błąd, wyświetlając listę „Uszkodzonych” pakietów, które tak naprawdę nie blokują aktualizacji).

Jest to również wskazane w tym podobnym pytaniu i odpowiedzi: /ubuntu//a/541406/13868

Nawiasem mówiąc, uruchomienie sudo ubuntu-bug ubuntu-release-upgrader-corepo nieudanej aktualizacji może faktycznie wykryć takie problemy i otworzyć odpowiedni raport o błędach w przeglądarce - to pomogło mi znaleźć problem.

Mark Longair
źródło
-4
sudo sed -i 's/raring/saucy/' /etc/apt/sources.list
sudo apt-get dist-upgrade

to działało dla mnie.

Jirobo
źródło