Ubuntu 16.04 - pakiety jądra zostały zachowane

18

Pobiegłem sudo apt-get upgradei dostaję to:

The following packages have been kept back:  
linux-generic-hwe-16.04 linux-headers-generic-hwe-16.04 linux-image-generic-hwe-16.04 linux-signed-generic-hwe-16.04 linux-signed-image-generic-hwe-16.04  
0 upgraded, 0 newly installed, 0 to remove and 5 not upgraded.

Obawiam się, że jeśli uruchomię, sudo apt-get dist-upgradecoś może pójść nie tak i zepsuć moją instalację Ubuntu. Widziałem tutaj podobne pytania, ale myślę, że różnią się one od mojego problemu. Co powinienem zrobić ?

FenrisL
źródło
@Yaron Nie sądzę, że to to samo.
FenrisL,
To jest to samo. Przeczytaj odpowiedzi.
pzkpfw
Apt nigdy nie wykonuje operacji wykraczających poza te wyraźnie wymagane bez opinii użytkowników; po prostu odpowiedz na pytanie n„nie” (lub odpowiednikiem języka używanego przez Apt). Jeśli nadal nie masz pewności, co może się zdarzyć podczas operacji Apt, możesz użyć opcji wiersza polecenia -s/ --simulate/ --just-print/ --dry-run/ --recon/, --no-actaby zobaczyć, co zrobiłby Apt, nie wykonując tego.
David Foerster,

Odpowiedzi:

6

Chociaż już wcześniej odpowiedziano na ogólny tematpakiety zostały utrzymane ”: dzisiaj dzieje się coś dziwnego ... kiedy wykonałem sudo apt updatekilka godzin temu, nowe jądro 4.8.0-42 było oferowane do instalacji. Uruchomiłem sudo apt dist-upgradei po ponownym uruchomieniu systemu (stacja robocza Ubuntu 16.10) uruchomiłem to nowe jądro.

Kilka godzin później chciałem zaktualizować instalację serwera Ubuntu, ale nowe jądro nie było oferowane. Aby ponownie sprawdzić sytuację, przywróciłem obraz kopii zapasowej systemu clonezilla z wczoraj na stacji roboczej Ubuntu, aby ponownie sprawdzić sytuację. Tym razem nowe jądro nie było już oferowane. Wygląda na to, że jądro 4.8.0-42 zostało przypadkowo zepchnięte do głównego repozytorium i jest na drodze do powrotu do proponowanego repozytorium - być może Canonical znalazł błąd.

Zdecydowałeś się na stos HWE Ubuntu 16.04, co oznacza, że ​​używasz jądra 4.8 Ubuntu 16.10. Dlatego wszystko dzieje się najpierw z jądrem w Ubuntu 16.10, możliwym wyjaśnieniem opóźnienia czasowego procesu odświeżania repozytoriów Ubuntu 16.04 LTS.

Gdy uruchomisz sudo apt updatetrochę później, otrzymana wiadomość nie powinna się już pojawiać. Wniosek: Nie uruchamiaj sudo apt dist-upgradei nie czekaj, aż repozytoria zostaną zaktualizowane, a komunikat o wstrzymanych pakietach jądra nie będzie już wyświetlany. Nawiasem mówiąc, dokładnie tak samo stało się z wersją jądra 4.8.0-40 już jakiś czas temu.

cl-netbox
źródło
Indeks pakietów zgłasza 4.8.0-42: packages.ubuntu.com/xenial-updates/linux-generic-hwe-16.04 ... z którego lustra korzystasz?
muru
To zdecydowanie prawdziwa rzecz / problem. Wczoraj zaktualizowałem system, korzystając z normalnego procesu. Dzisiejsze apt-cache policy linux-generic-hwe-16.04pokazy *** 4.8.0.42.14 100 100 /var/lib/dpkg/status Innymi słowy, został osierocony.
Organiczny marmur
@ cl-netbox Zrobiłem teraz sudo apt-get update i pakiety zniknęły.
FenrisL,
12

Jeśli aktualizacja istniejącego pakietu wymagałaby zainstalowania „nowego” pakietu (np. Jeszcze nie zainstalowanego), to ten konkretny istniejący pakiet zostanie „cofnięty”.

Według man apt-get , upgradedomyślnie nie instaluje inne jeszcze-nie-zainstalowanych pakietów:

Aktualizacja

... pod żadnym pozorem nie są obecnie instalowane pakiety usunięte lub pakiety jeszcze nie zainstalowane zostały pobrane i zainstalowane.

--with-new-pkgs

Zezwalaj na instalowanie nowych pakietów w połączeniu z aktualizacją. Jest to przydatne, jeśli aktualizacja zainstalowanego pakietu wymaga zainstalowania nowych zależności. Zamiast wstrzymywać pakiet przed aktualizacją, zaktualizuje pakiet i zainstaluje nowe zależności. ...

dlatego --with-new-pkgsnależy dodać, aby umożliwić włączenie powiązanych innych pakietów.

sudo apt-get --with-new-pkgs upgrade

--with-new-pkgs umożliwia zainstalowanie powiązanych „jeszcze nie zainstalowanych” pakietów za pomocą interaktywnego monitu T / N.

Ponadto, jako dodatkowa korzyść, sudo apt-get --with-new-pkgs upgradeNIE ma skutków ubocznych powodujących oznaczanie pakietów jako zainstalowane ręcznie.


Aktualizacja

Ubuntu 18.04 zapewnia nowszą, usprawnioną składnię, aptktórej można użyć zamiast apt-get.

sudo apt full-upgrade
l - marc l
źródło
Całe „jeśli pakiet wymaga zainstalowania nowego pakietu”, to zostanie ono wstrzymane, nie ma dla mnie sensu. Mam swój własny pakiet deb, którym zarządzam, a jeśli dodam zależność, która nie jest zainstalowana w moim systemie, apt upgrade nadal będzie aktualizował pakiet i nie zatrzymał go.
shreddish
@shreddish Z mojego doświadczenia wynika, że ​​niektóre sudo apt-get upgradescenariusze wymagały --with-new-pkgsinformacji o stronie podręcznika. Najwyraźniej zarządzany pakiet deb lub używany scenariusz testowy nie powoduje potrzeby --with-new-pkgsopcji z dodaną zależnością odinstalowania ... z jakiegoś powodu, który nie został jeszcze odkryty. Byłoby interesujące wiedzieć, czy potrafisz wyodrębnić przyczynę.
l --marc l
2

Będąc stosunkowo nowym użytkownikiem Ubuntu natknąłem się na ten sam problem i najwyraźniej go rozwiązałem. Odkryłem, że w systemie Ubuntu były trzy oczekujące aktualizacje o takich samych nazwach, jak te wymienione na terminalu, jak podano poniżej:

The following packages have been kept back:
linux-generic-hwe-16.04 linux-headers-generic-hwe-16.04 linux-image-generic-hwe-16.04
0 upgraded, 0 newly installed, 0 to remove and 3 not upgraded.

Po zainstalowaniu tych aktualizacji z oprogramowania Ubuntu wróciłem do terminala i zrobiłem sudo apt-get updatei sudo apt-get upgrade. Wynik:

The following packages were automatically installed and are no longer required:
  linux-headers-4.8.0-41 linux-headers-4.8.0-41-generic linux-headers-4.8.0-44 linux-headers-4.8.0-44-generic linux-image-4.8.0-41-generic
  linux-image-4.8.0-44-generic linux-image-extra-4.8.0-41-generic linux-image-extra-4.8.0-44-generic
Use 'sudo apt autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

Nie będąc ekspertem myślę, że instalacja aktualizacji z oprogramowania Ubuntu wydaje się rozwiązać problem. Problem polega na tym, że nie ma pełnej komunikacji między oprogramowaniem Ubuntu a pakietami aktualizacji i aktualizacji apt-get. Jestem pewien, że znajdziesz lepsze wytłumaczenie, ale chciałem się z tobą tym podzielić.

Jose
źródło
Dzięki. Ogólnie rzecz biorąc, Ubuntu odradza nam, aby nie używać aptitude ani synaptic (usuwając je z domyślnej instalacji. Może to jest kierunek, w którym szukamy odpowiedzi. Na razie spróbuję uniknąć tych dwóch. Jak tylko zobaczę twoją odpowiedź, biegnę do Centrum oprogramowania i pokazało mi, że rzeczy, które apt ignoruje. Ponieważ system operacyjny jest zbudowany przez Ubuntu, przejdę do SC. To trochę jak kłócić się z AppStore, gdy homebrew twierdzi.
nyxee
więc to centrum oprogramowania wydaje się być bardzo złym rozwiązaniem dla tych z nas, którzy mają słabe połączenia. czy jest inny sposób?
nyxee,