Strategia radzenia sobie z coraz słabszą kontrolą jakości firmy Canonical?

13

Moja installed (local or obsolete)kategoria się zapełnia, ponieważ firma Canonical ostatnio wypycha aktualizacje, a następnie je wycofuje. Zdarzyło się to w dwóch jądrach w niedawnej przeszłości i powtórzyło się cupsto dziś rano. Używam Ubuntu od około trzech lat i nie pamiętam, aby zdarzało się to tak często, jak w tym roku.

Jak więc racjonalnie sobie z tym poradzić?

Myślałem o instalowaniu aktualizacji tylko raz w tygodniu, ale to nie ochroniłoby przed pobraniem złej aktualizacji, którą wypchnęli tuż przed sprawdzeniem w tym tygodniu.

Czy dobrą strategią jest instalowanie aktualizacji tylko w weekendy? Wygląda na to, że aktualizacje systemu nie są często wypychane w weekendy. Podejrzewam, że mogą pchnąć złą aktualizację w piątek po południu i wyciągnąć ją w poniedziałek rano.

Lub jakoś nie instalować aktualizacji, dopóki nie zostaną wypchnięte na określony czas - na przykład dwa dni? Czy istnieje zautomatyzowany sposób to zrobić?

Edycja: Jeden z systemów, których dotyczy luka, uruchamia Lubuntu 16.04 z linux-genericjądrem, drugi uruchamia Lubuntu 16.04 z linux-generic-hwe-16.04jądrem. Oba zostały dotknięte cupsaktualizacją wersji 2.13-4ubuntu0.2, która została wypchnięta, a następnie wycofana 27 marca 2017 r. linux-genericMaszyna otrzymała aktualizację jądra w wersji 4.4.0.67.12, którą następnie wycofano. Ta aktualizacja również osierocona snapdwersja 2.23.1. linux-generic-hwe-16.04Maszyna otrzymała jądro w wersji 4.8.0.42.14, które zostało następnie osierocone.

Marmur Organiczny
źródło
2
Dziękujemy za wyjaśnienie wersji. Zastanawiałem się, czy masz do czynienia z wersją LTS, podczas gdy wersje pośrednie (dla mnie) służą głównie do testowania z dużą ilością zmian, które mogłyby wprowadzić ją do LTS. Jeśli chodzi o wersje LTS, na których się skupiam, nie byłem wystarczająco spostrzegawczy, aby zauważyć wybitne błędy. Regularnie aktualizuję. Od czasu do czasu dostrzegam drobne problemy, z którymi najwyraźniej deweloperzy ciągle mają do czynienia. Możesz rozważyć skupienie się na aktualizacjach zabezpieczeń dla bezpiecznego systemu i umożliwienie radzenia sobie z codziennymi zmianami przez bardziej odważnych.
LD James
1
@fkraiem tak, widziałem wycofanie dwóch ostatnich wydań jądra wkrótce po tym, jak powiadomiono mnie, że są dostępne. Zabawne, postanowiłem zrobić aktualizacje później, a kiedy wróciłem, zniknęły!
heynnema
Użyłem wyłączania automatycznych aktualizacji systemu Windows częściowo ze względu na twoje ostatnie doświadczenia z Ubuntu. Zauważyłem, że ostatnio aktualizacje wydają się być codzienne. Może powinienem wyłączyć mój, ponieważ nie mam teraz żadnych błędów.
WinEunuuchs2Unix
Czy częściej pomijają niezbędne portony StableReleaseUpdates , szczególnie w przypadku pakietów podstawowych? AFAIK, który nie został ogłoszony, i podjęcie dyskusji na liście mailingowej ubuntu-devel byłoby właściwym rozwiązaniem.
Gunnar Hjalmarsson

Odpowiedzi:

2

Drastyczną alternatywą jest przejście na Debian Stable, a nie na * buntu lub jego pochodną, ​​ponieważ Debian Stable przeszedł pełny proces kontroli jakości, podczas gdy Ubuntu wywodzi się z Testowania Debiana, który ma pewną szansę, zanim stanie się Stabilny.

Prawie całą wiedzę można przenosić bezpośrednio, ale Debian nie da ci wszystkich najnowszych kosmetycznych „dzwonków i gwizdków”. Ma jednak więcej pakietów w swoim repozytorium ...

Przeszedłem na Debiana, w moim przypadku z KDE, pochodzącego z Kubuntu, jakieś 5 lat temu, mając podobne problemy. Ale sprowadza się to do osobistego wyboru.

tiger99
źródło
1
To dobra informacja. Skończyło się na tym, tworząc własne lokalne dublowanie, które zasadniczo pobiera wszystkie aktualizacje codziennie. Mój domowy komputer LAN pobiera aktualizacje z lokalnego serwera lustrzanego, ale tylko na polecenie, nie automatycznie. Więc jeśli coś wygląda przerażająco, mogę usiąść na nim przez kilka dni, jeśli chcę.
Marmur organiczny
To bardzo dobre rozwiązanie problemu. Wiele sieci biznesowych jest skonfigurowanych do robienia tego samego z aktualizacjami Windows, z podobnych powodów!
tiger99
0

Cofnij aktualizację pakietu do starszej wersji

Jeśli masz numer wersji lub wersję docelową, apt-get obsługuje wybranie konkretnej wersji lub wersji docelowej.

  1. Zainstaluj aptitude

    sudo apt-get install aptitude
    
  2. Pokaż stare wersje pakietu.

    aptitude versions <package-name> | less # use less to display only the top of the list of versions
    
  3. Przywróć wybrany pakiet do starszej wersji.

    sudo apt-get -t=<target release> install <package-name>  # target release is old version
    
  4. Odinstaluj złą aktualizację wybranego pakietu.

    sudo apt-get -t=<target release> remove <package-name> # target release is new version
    
  5. Zapobiegaj automatycznej aktualizacji wycofanej wersji pakietu za pomocą apt-mark hold. apt-mark holdsłuży do oznaczania pakietu jako wstrzymanego, co uniemożliwi automatyczne zainstalowanie, uaktualnienie lub usunięcie pakietu.

    sudo apt-mark hold <package-name>  
    

Cofnij aktualizację jądra do starszej wersji

Wykonaj te same kroki, co w poprzedniej sekcji, z tym wyjątkiem, że musisz wykonać dodatkowe kroki testowania, czy nadal masz zainstalowaną wersję jądra, która działa przed odinstalowaniem uszkodzonego pakietu jądra. Niestety wymaga to ponownego uruchomienia systemu. Przykro mi z powodu ponownego uruchamiania, ponieważ wiem, że może to być uciążliwe i czasochłonne w przypadku utrzymywania wielu systemów.


aptitude versions <package-name> nie pokazuje wszystkich aktualnie zainstalowanych wersji jądra, ale możesz pokazać wszystkie aktualnie zainstalowane wersje jądra za pomocą tego polecenia:

dpkg-query -W -f='${Package}\n' | grep -f <(ls -1 /boot/vmlinuz* | cut -d- -f2,3)  

W wyniku tego polecenia zostaną wyświetlone nazwy wszystkich niedziałających pakietów jądra, które należy odinstalować.

Po odinstalowaniu pakietów należących do niedziałającej wersji jądra pojawi się następujący komunikat:

The link /vmlinuz.old is a damaged link
Removing symbolic link vmlinuz.old 
 you may need to re-run your boot loader[grub]

Ten komunikat jest wyświetlany, ponieważ plik vmlinuz.old jest powiązany z usuniętymi plikami, dlatego należy zaktualizować program grub, uruchamiając to polecenie:

sudo update-grub
Karel
źródło
1
Um, to jest ogromny ból, jeśli masz kilka systemów do utrzymania, a potem musisz wrócić i ustawić je wszystkie, aby uruchamiały się z dobrego jądra. I zajmij się restartem złego jądra i kolejnym restartem, aby uzyskać dobre jądro.
Marmur organiczny
1
Członkowie mojej rodziny muszą uruchomić komputery bez zastanawiania się, jakiego jądra użyć. I wiem, jak rozwiązać ten problem, gdy się zdarzy. Szukam przede wszystkim strategii, która pozwoli uniknąć problemu. Nie głosowałem za twoją odpowiedzią, ale nie odpowiada ona na moje pytanie.
Organiczny marmur
2
@OrganicMarble Czy dla Twoich dzieci, które nie są najbardziej obeznane z komputerem lub nie chcą się martwić myśleniem o jądrze i innych sprawach, przetestowałeś konfigurowanie ich komputerów tylko pod kątem aktualizacji zabezpieczeń ? Czy ten sam problem występuje z tą konfiguracją? Nie mogę sobie wyobrazić sytuacji, w której ogólne aktualizacje byłyby idealne, dopóki masowe ilości komputerów i środowisk nie będą testowane po wydaniu, gdy będzie działać bez problemów w laboratorium. Przynajmniej twoje pytanie pokazuje szybkie poprawki, gdy pojawią się problemy.
LD James
1
@LDJames, co jest dobrą sugestią. Podejrzewam jednak, że te aktualizacje jądra były aktualizacjami bezpieczeństwa. Nie jestem pewien, jak wrócić i to sprawdzić.
Organiczny marmur
1
@OrganicMarble Możesz wrócić i sprawdzić, przeglądając unattendedpliki dziennika ( /var/log/unattended-upgrades). Uważam, że unattended-upgradespakiet służy do aktualizacji zabezpieczeń.
LD James
-1

Najlepszą strategią, jak każdy system operacyjny, jest sprawdzanie dostępności aktualizacji co najmniej raz dziennie.

Z punktu widzenia bezpieczeństwa nie jest realistyczne, aby pojedynczy użytkownik uruchamiał opóźnione aktualizacje, gdy są one indywidualnie testowane i nadawane im priorytety. A pilna aktualizacja jest zawsze ważniejsza niż ściągnięta.

Dlatego, chyba że masz czas na zbadanie każdej aktualizacji, najlepszą strategią jest zastosowanie aktualizacji w momencie ich wydania, nawet jeśli spowoduje to wiele pobranych aktualizacji. Można je zawsze wyczyścić później.

Jako strategia tworzenia kopii zapasowych zawsze powinieneś ... tworzyć kopie zapasowe! Często twórz kopie zapasowe, twórz kopie zapasowe wszystkiego. Złe aktualizacje są jednym z powodów tego. Jest to szczególnie przydatne, gdy przechowujesz ważne dokumenty w chmurze.

EDYCJA: Moja odpowiedź opiera się na założeniu, że jesteś samotną osobą z komputerami domowymi w domu.

dorycki
źródło
1
Strategia „uśmiechnij się i zrób to” nie jest tym, czego szukam.
Marmur organiczny
@OrganicMarble Nigdy tego nie powiedziałem. Ale zakładam, że jesteś pojedynczym użytkownikiem i mówisz o systemie osobistym. W przeciwnym razie rozwiń swoje pytanie. Jest tylko tyle rzeczy, które możesz zrobić jako jedna osoba, jeśli chodzi o zarządzanie aktualizacjami. Zarządzam dużymi witrynami z dziesiątkami serwerów i setkami stacji roboczych w organizacji, która jest setki razy większa niż moje witryny. Wszyscy zajmujemy się aktualizacjami w bardzo skomplikowany sposób, którego jedna osoba nigdy nie mogłaby zrobić.
Dorian
Tak, chyba jestem w rogu, gdzie jesteśmy rodziną Ubuntu z 5 komputerami, a ponadto uruchamiam kilka maszyn wirtualnych. Więc ok. 10 systemów, którymi muszę zarządzać. Zbyt mało, aby uzyskać zautomatyzowany system zarządzania, ale wystarczy, aby takie rzeczy były bardzo denerwujące.
Organiczny marmur
@OrganicMarble Tak, co utrudnia jednej osobie zarządzanie. I szczerze mówiąc, najlepszą rzeczą, jaką możesz zrobić, to po prostu aktualizować tak często, jak to możliwe. Szybkie pokazanie członkom rodziny prawdopodobnie pomogłoby, jeśli pojawi się wiele opcji jądra. Powinieneś pokazać je tylko raz lub dwa razy. Czy zastanawiałeś się nad prostym skryptem uruchamianym z cronzadania w celu sprawdzenia wielu jąder? Czy głównym problemem jest wiele jąder?
Dorian