Zdarzyło mi się to wiele razy w ciągu ostatnich 5 lat: aktualizacja spowodowała uszkodzenie mojego systemu. Za każdym razem, gdy kończy się taka sytuacja, muszę ponownie instalować cały system, co jest naprawdę denerwujące.
Czy jest jakiś sposób na wycofanie najnowszej aktualizacji, aby mieć funkcjonalny system bez ponownej instalacji? Jeśli nie, jaki jest najlepszy sposób na zasugerowanie tego jako idei o najwyższym priorytecie?
Przeczytałem ten pomysł, który został opisany w brainstorm.ubuntu.com, ale wydaje mi się, że jest martwy ... i fora są pełne przykładów aktualizacji, które psują rzeczy, dlatego uważam, że należy coś zrobić w tym temacie. Dzięki!
Odpowiedzi:
W synaptics możesz przynajmniej kontrolować, jakie były najnowsze aktualizacje: menu Plik, historia.
(jeśli można uruchomić synaptic, z uszkodzonym systemem). Zatem polecenie apt -...-, aby przywrócić ich aktualizację, nie powinno być zbyt trudne.
Wydaje mi się, że istnieje również polecenie historii dla wiersza poleceń.
Być może musisz usunąć cały pakiet i zainstalować określoną wersję. Afaik, można zainstalować konkretną wersję, ale nigdy nie musiałem tego robić.
aktualizacja: Sprawdziłem, jak zrobić z apt:
Znajdź pakiety zainstalowane w ciągu ostatnich 3x24h:
Dzięki zasadom apt-cache widzisz dostępne wersje programu:
tutaj 3.6.7 i 3.6.3. Teraz wiesz, jaką wcześniejszą wersję można zainstalować (często nie bezpośredni jej poprzednik):
Następnie musisz wykonać apt-pinning, aby zapobiec przyszłym aktualizacjom:
Utwórz nowy plik w /etc/apt/preferences.d/ (jeśli> = 10.4) o nazwie po swoim programie,
źródło
1.0.2g-1ubuntu4.12
zgodna z apt? Jednak odmawia przyjęcia tego jako numeru wersji. Chcę obniżyć formularz1.0.2g-1ubuntu4.13
z1.0.2g-1ubuntu4.12
find /var/lib/dpkg/info/ -name \*.list -mtime -3 | sed 's#.list$##;s#.*/##'
w tym momencie, to mniej kłopotów z ponowną instalacją całego systemuPrzeważnie możesz skonsultować
/var/log/apt/history.log
zmiany wprowadzone przez apt / synaptic. To tylko trochę kryminalistycznych i dużo wycinania / wklejania do zrobienia.Wróć do daty, w której system nadal działał poprawnie.
Najpierw weź wszystkie pakiety, które zostały zainstalowane od tego czasu i połącz je w skrypcie odinstalowującym. Po zakończeniu skryptu zacznij ponownie dodawać wszystkie usunięte pakiety.
Przykładowy przypadek:
plik dziennika:
możesz zobaczyć,
został zainstalowany przez Synaptic. jak
libfglrx:amd64
zostało usunięte przez Synaptic.Poszliśmy w odwrotnej kolejności, więc najpierw usuwamy nowo zainstalowane pakiety i ponownie dodajemy pakiety, które zostały usunięte.
Działające polecenie dla tego przypadku może wyglądać następująco:
Być może nie byłoby najlepszym wyjściem bez
-y
przełącznika - mieć większą kontrolę nad procesem (aby uniknąć przerwanych zależności). Większość z was nie złamałaby palca podczas kilku weryfikacji „y”W większości przypadków wycofanie jest możliwe w ten sposób, ale jeśli zależności są już zerwane - możesz napotkać jeszcze większy problem.
źródło
W większości przypadków, jeśli twój system jest uszkodzony, jest to problem z jądrem .
Wystarczy uruchomić starsze jądro i ponownie zainstalować najnowsze pakiety (zwłaszcza pakiety jądra), które prawdopodobnie nie zostały poprawnie zaktualizowane. Kilka notatek:
jest twoim przyjacielem, aby sprawdzić, jaka jest lista ostatnio zaktualizowanych / zainstalowanych pakietów
może w większości przypadków naprawić pakiety częściowo zainstalowane
źródło
Niestety nie ma jeszcze na to sposobu. Migawka / przywracanie na poziomie systemu plików jest jedną z funkcji nadchodzących plików btrfs, ale ma jeszcze sposoby, aby stać się kompletnym i wystarczająco stabilnym, aby można go było używać jako domyślnego systemu plików.
źródło
Podczas ważnej aktualizacji klonuję dysk za pomocą Clonezilla . Nagraj go na płycie CD, miej zapasowy (zewnętrzny) dysk twardy i postępuj zgodnie z instrukcjami na Clonezilla LiveCD. Wybierz
partition-image
tryb, który zajmuje najmniej miejsca.Jeśli uważasz, że zepsułeś system (lub chcesz cofnąć zmiany), po prostu uruchom dysk Clonezilla LiveCD, wybierz obraz na (zewnętrznym) dysku twardym i przywróć go. Ponieważ te obrazy są dosłowną kopią każdego bitu na dysku, może to potrwać kilka godzin w zależności od szybkości dysku i szybkości połączenia (połączenie między danymi, zwykle zewnętrznym dyskiem twardym USB a komputerem).
Nawiasem mówiąc, nazywa się to metodą tworzenia kopii zapasowych.
źródło
Możesz łatwo zainstalować starszą wersję danego pakietu (obniżenie wersji) za pomocą apt lub dpkg . Problemem jest znalezienie starszej wersji pakietu, ponieważ często znikają one z puli i kopii lustrzanych podczas aktualizacji.
Jeśli zainstalujesz pakiet z instalacyjnego dysku CD lub nieaktualnego kopii lustrzanej lub pamięci podręcznej, będziesz musiał również trzymać go przypiętego do starej wersji, aby nie został zaktualizowany, dopóki na to nie zezwolisz. Co oznacza, że musisz uważać na aktualizacje i testować je, aż problem zostanie rozwiązany. Jest to oczywiście problem, ponieważ w międzyczasie (może na zawsze) pozostaniesz z nie naprawionym, być może niepewnym pakietem. Oznacza to, że każdy użytkownik z jakimś problemem systemowym pozostanie w jakimś losowym stanie, dopóki nie będzie w stanie go rozwiązać.
Całe oprogramowanie również nie jest kompatybilne z poprzednimi wersjami, więc starsza wersja czegoś może nie działać poprawnie, gdy jest zasilana nowszymi plikami konfiguracyjnymi lub danymi. Oczywiście nie jest to możliwe do rozwiązania, chyba że cofniesz wszystkie dane użytkownika do stanu sprzed aktualizacji.
Byłoby wspaniale, gdyby był na to sposób, ale jest to ogromnie problematyczne. Każdy, kto uważa, że istnieje spójne rozwiązanie, powinien napisać propozycję i zaprosić do komentarza lub, jeszcze lepiej, przygotować dowód koncepcji (kod, skrypt, dokument). Trollowanie i marudzenie nie jest konstruktywne.
Ponieważ nie ma czystego rozwiązania technicznego, większość oprogramowania jest opracowywana (i zintegrowana) z mentalnością „jedyną drogą do przodu”. Próba zarządzania przestarzałymi wersjami to strata czasu każdego. Znalezione problemy zostały naprawione jak najszybciej w nowszych wersjach. Jako drobne rozwiązanie chciałbym zobaczyć gdzieś archiwum poprzednich wersji pakietów, które może być tymczasowo obejrzane.
W międzyczasie możesz zgłaszać błędy i nie oczekiwać, że najnowsze oprogramowanie nigdy nie zawiedzie. Po znalezieniu poprawki powinna ona znajdować się w następnej aktualizacji. Deweloperzy to ludzie (głównie) i dlatego omylni. Komputery są wybredne i pełne niesamowitej różnorodności i detali. Defensywnie utrzymywane systemy wykorzystujące dobrze obsługiwane komponenty i stabilną, zintegrowaną dystrybucję oprogramowania mogą być bardzo stabilne, nie stając się niepewnymi lub niemożliwymi do aktualizacji.
źródło