apt mówi, że pakiety zostały wstrzymane, co robić?

12

Wyjście z apt-get upgrade jest:

The following packages have been kept back:
certbot python-acme python-certbot python-certbot-apache python-cryptography python-openssl

Co to znaczy? Czy powinienem podjąć działanie? Jeśli tak to co?

Jarle Hammen Knudsen
źródło

Odpowiedzi:

15

Szybki i EASY Solution:

Miałem ten sam problem, niezliczoną ilość razy. Nie rób robić sudo apt-get dist-upgrade pierwszy. Bardzo ważne.

Czemu?

Może to spowodować, że twój system będzie bardzo niestabilny, programy mogą ulec awarii i możesz stracić wiele funkcjonalności w swoim systemie operacyjnym.

Nie miałem problemów z rozwiązaniem, które zapewnię.

Musisz zainstalować każdy pakiet indywidualnie, jednak w trakcie tego procesu inne zależności zostaną również automatycznie zainstalowane, a problem zostanie rozwiązany w ciągu kilku minut.

Zrób to:

apt list --upgradable
  • Spowoduje to wyświetlenie listy pakietów, które można uaktualnić.

Kolejny:

  • Zacznij od początku listy pierwszym pakietem i wpisz:

    sudo apt-get install package-name-here

Zostanie to uruchomione przez proces instalacji i zależności typu pull / install. Gdy to się zakończy, zrób to:

apt list --upgradable

To ponownie pokaże, które pakiety można uaktualnić. Twoja lista pakietów powinna się teraz zmniejszać. Wystarczy śledzić listę pakietów i apt list --upgradable po każdej instalacji pakietu. Zajmie tylko kilka minut.

Jeśli to rozwiązanie zadziałało dla Ciebie, nie zapomnij go przekazać, aby właściwe rozwiązanie było dostępne dla innych i znajduje się na początku listy odpowiedzi.

Dzięki.

Gregory Smitherman
źródło
11

Co to znaczy?

The following packages have been kept back:

Odpowiedź to tutaj

Oznacza to, że istnieją nowe wersje tych pakietów, które z jakiegoś powodu nie zostaną zainstalowane. Możliwymi powodami są zepsute zależności (pakiet, od którego zależy, nie ma wersji do pobrania) lub nowe zależności (pakiet jest zależny od nowych pakietów od ostatniej wersji).

Czy powinienem podjąć działanie?

Musisz użyć dist-upgrade w celu zainstalowania nowych zależności i uaktualnienia pakietów:

sudo apt-get dist-upgrade

Problem można rozwiązać, uruchamiając dist-upgrade jeśli nie musisz:

Napraw uszkodzone zależności

sudo apt-get -f install 

Usuń niektóre pakiety, które nie są już zainstalowane w systemie:

sudo apt-get autoclean

Wstrzymaj żądany pakiet:

echo "<package_name> hold" | dpkg --set-selections

Zmień konfigurację nazwanego pakietu:

dpkg-reconfigure <package_name>
GAD3R
źródło
2

Odpowiedź tę umieściłem na moim blogu. Jeśli chcesz zobaczyć, że możesz tam pojechać połączyć .

Powyższy błąd występuje bardzo często w terminalu Ubuntu podczas próby uaktualnienia ( apt-get upgrade ). Zwykle dzieje się tak, ponieważ zmieniły się zależności jednego instalowanego pakietu. Aby uaktualnić, musisz najpierw ulepszyć te. Więc jest to bardzo proste do rozwiązania. Będziesz mógł zobaczyć te pakiety, które były przechowywane poniżej tego komunikatu o błędzie. jako przykład widzę następujące pakiety na liście:

gnome-software gnome-software-common linux-generic linux-headers-generic linux-image-generic snapd ubuntu-core-launcher ubuntu-software

Nie pisz tylko sudo apt-get dist-upgrade Jest to bardzo niebezpieczne, ponieważ instaluje wszystkie oczekujące aktualizacje. Może to spowodować, że środowisko pracy stanie się bardzo niestabilne.

Dlatego moim zdaniem używam znanych

sudo apt-get install [package]

Możesz wymienić [package] z jakimkolwiek pakietem w komunikacie o błędzie. Możesz także umieścić je tak, jak jest na liście (wystarczy skopiować i wkleić). Jako przykład w moim przypadku mogę wejść

sudo apt-get install gnome-software gnome-software-common linux-generic linux-headers-generic linux-image-generic snapd ubuntu-core-launcher ubuntu-software

Jeśli chcesz to zrobić

sudo apt-get dist-upgrade

z jakiegoś powodu po prostu sprawdź listę pakietów za pomocą opcji symulacji -s ( sudo apt-get -s dist-upgrade ) lub bez -s opcja możesz zakończyć wykonywanie przed zaakceptowaniem. (zawsze możesz wybrać opcję nie)

Dimuth Tharaka Menikgama
źródło
0

Z ta odpowiedź Unix SE :

Po pierwsze, jak wspomniano powyżej, proszę NIE aktualizuj żadnego systemu produkcyjnego! Chociaż aktualizacja dystansowa „rozwiąże” wstrzymane pakiety, zdecydowanie nie jest rozwiązaniem tego problemu i będzie całkiem prawdopodobne spowodować więcej smutku niż dobrego, jeśli go uruchomisz, nie znając implikacji dla twojego systemu.

Jeśli aktualizacja pakietu wymaga zainstalowania dodatkowych pakietów, zostanie on „zatrzymany” podczas działania sudo apt-get upgrade.

Jak wspomniano powyżej, możesz ręcznie zainstalować te „utrzymane” pakiety sudo apt-get install [paste kept back packages here] ale to oznaczy te pakiety jako „zainstalowane ręcznie”, co często nie jest tym, czego chcemy.

Aby automatycznie zainstalować dodatkowe pakiety potrzebne do uaktualnienia pakietów „trzymanych z powrotem”, nie zaznaczając pakietów „wstrzymanych” jako ręcznie zainstalowanych, po prostu uruchom sudo apt-get --with-new-pkgs upgrade.

Brian Heese
źródło