4. Aktualizacja z Debiana 12 (bookworm)
4.1. Przygotowanie do aktualizacji
Przed aktualizacją zalecamy zapoznanie się z informacjami zawartymi w Problemy, które należy mieć na uwadze, a dotyczące wydania trixie. Rozdział ten opisuje również potencjalne trudności, niezwiązane bezpośrednio z procesem aktualizacji, o których warto wiedzieć przed rozpoczęciem całej procedury.
4.1.1. Kopia zapasowa danych i konfiguracji
Przed zaktualizowaniem systemu zalecamy wykonanie pełnej kopii zapasowej, a przynajmniej kopii tych danych i konfiguracji, których utrata byłaby dla nas bolesna. Narzędzia i proces aktualizacji są dość niezawodne, lecz problem sprzętowy w trakcie procedury może spowodować znaczne uszkodzenie systemu.
Najważniejszymi rzeczami, jakie należałoby skopiować, jest zawartość /etc
, /var/lib/dpkg
, /var/lib/apt/extended_states
i wynik:
$ dpkg --get-selections '*' # (the quotes are important)
Jeśli do zarządzania pakietami korzysta się z aptitude
, należałoby również zachować kopię pliku /var/lib/aptitude/pkgstates
.
Sam proces aktualizacji nie zmienia niczego w katalogu /home
. Niektóre aplikacje (np. część zestawu Mozilla oraz środowiska graficzne GNOME i KDE) nadpisują istniejące ustawienia użytkownika wartościami domyślnymi, gdy użytkownik uruchamia dany program jako pierwszy. Środkiem ostrożności jest wykonanie kopii zapasowych ukrytych plików i katalogów (z kropką - „dotfiles”) z katalogów domowych użytkowników. Ta kopia może ułatwić odtworzenie lub przywrócenie starych ustawień. Powinno się również poinformować o tym pozostałych użytkowników.
Operacja związana z instalacją pakietów musi być wykonana z uprawnieniami administratora, dlatego należy się zalogować na konto root
, używając polecenia su
lub wykorzystując sudo
do uzyskania potrzebnych uprawnień.
Przed aktualizacją należy wykonać kilka czynności, dlatego trzeba zapoznać się z poniższą listą:
4.1.2. Uprzednie ostrzeżenie użytkowników
Przed każdą aktualizacją powinno się poinformować innych użytkowników systemu o tym fakcie, choć osoby uzyskujące dostęp do komputera za pomocą ssh
nie powinny napotkać większych problemów podczas kontynuowania pracy.
Jako dodatkowe zabezpieczenie można wykonać przed wykonaniem aktualizacji kopię zapasową lub odmontować partycję z katalogiem /home
.
Przy aktualizacji do wydania trixie konieczne jest zaktualizowanie jądra. Nie obędzie się więc bez ponownego uruchomienia komputera. Zwykle odbywa się to po zakończeniu aktualizacji.
4.1.3. Przygotowanie do przestoju usług
Mogą istnieć usługi oferowane przez system, które są związane z pakietami objętymi aktualizacją. W takim przypadku proszę pamiętać, że podczas aktualizacji i konfiguracji będą one zatrzymane na czas zastąpienia ich przez nowszą wersję oraz nie będą w tym czasie dostępne.
Dokładny czas braku dostępu do usług zależy od liczby aktualizowanych pakietów i od okresu, w jakim administrator odpowie na pytania konfiguracyjne. Proszę zwrócić uwagę, że jeśli proces aktualizacji nie będzie nadzorowany, a system będzie wymagał reakcji administratora, występuje duże prawdopodobieństwo trwania usług niedostępnych [1] w dłuższym okresie.
Jeśli aktualizowany system udostępnia usługi, które są krytyczne dla użytkowników bądź sieci [2], można ograniczyć przerwę w ich działaniu wykonując aktualizację minimalną (zgodnie z opisem w rozdziale Minimalna aktualizacja systemu), następnie wykonać aktualizację jądra i ponownie uruchomić komputer, a potem zaktualizować pakiety związane z krytycznymi usługami. Dopiero później należy wykonać pełną aktualizację opisaną w rozdziale Aktualizacja systemu. W ten sposób można sprawdzić, że krytyczne usługi działają i są dostępne w trakcie pełnej aktualizacji, a przerwa w działaniu będzie zminimalizowana.
4.1.4. Przygotowanie do odzyskiwania
Choć Debian stara się zapewnić, że system będzie się uruchomiał w każdym przypadku, to zawsze istnieje możliwość, że wystąpią problemy z ponownym jego uruchomieniem po dokonaniu aktualizacji. Rozpoznane, ewentualne problemy są omówione w tym i kolejnych rozdziałach uwag do wydania.
Z tego względu należy się upewnić, że będzie istniała możliwość odzyskania systemu jeśli nie uruchomi się on po aktualizacji (lub, w przypadku systemów zarządzanych zdalnie, nie zaktywuje sieci).
W przypadku aktualizacji zdalnej za pomocą ssh
, zaleca się dodatkowe środki bezpieczeństwa, w celu zapewnienia sobie możliwości dostępu do serwera za pomocą zdalnego terminala szeregowego. Istnieje ryzyko, że po aktualizacji jądra i ponownym uruchomieniu systemu wystąpi konieczność poprawienia konfiguracji systemu korzystając z konsoli lokalnej. Jeśli w trakcie aktualizacji system zostanie przypadkowo zresetowany, możliwe że konieczne będzie odzyskiwanie za pomocą lokalnej konsoli.
W sytuacjach awaryjnych zalecamy użycie trybu ratunkowego w instalatorze Debiana trixie. Zaletą skorzystania z instalatora jest możliwość wyboru takiej metody jaka jest najkorzystniejsza w danym przypadku. Więcej informacji zawiera „Recovering a Broken System” w rozdziale 8 przewodnika instalacji (pod adresem https://www.debian.org/releases/trixie/installmanual) i FAQ instalatora Debiana.
Jeśli ten sposób zawiedzie, konieczne jest zapewnienie sobie alternatywnego sposobu rozruchu systemu, by móc uzyskać do niego dostęp i możliwość naprawy. Rozwiązaniem może okazać się specjalny obraz ratunkowy lub obraz typu live. Po rozruchu systemu powinno się udać podmontować główny system plików, a następnie wykonać chroot
w celu rozpoznania i naprawy problemu.
4.1.4.1. Debugowanie powłoki podczas rozruchu przy użyciu initrd
Pakiet initramfs-tools udostępnia powłokę debugowania [3] w generowanych obrazach initrd. Na przykład: jeśli initrd nie będzie mógł zamontować głównego systemu plików to przeniesie się do powłoki debugowania z dostępnymi podstawowymi poleceniami, aby dać możliwość znalezienia problemu i naprawy.
Podstawowymi sprawami do sprawdzenia są: obecność poprawnych plików urządzeń w /dev
; które moduły są załadowane (cat /proc/modules
); wynik dmesg
pod kątem błędów ładowania sterowników. Wynik dmesg
pokaże również jakie pliki urządzeń zostały przypisane do danych dysków; powinno się je sprawdzić z wynikiem echo $ROOT
, aby upewnić się, że główny system plików znajduje się na oczekiwanym urządzeniu.
Jeśli problem się rozwiąże to polecenie exit
zamknie powłokę debugowania i proces debugowania będzie kontynuowany od momentu wystąpienia błędu. Oczywiście, konieczne będzie naprawienie źródła problemu i ponowne wygenerowanie initrd, aby przy następnym rozruchu nie znaleźć się w identycznej sytuacji.
4.1.4.2. Debugowanie powłoki podczas rozruchu przy użyciu systemd
Jeśli rozruch nie powiedzie się korzystając z systemd, można dostać się do powłoki roota służącej do debugowania zmieniając wiersz polecenia jądra. Jeśli podstawowy rozruch uda się, lecz część usług nie wystartuje, można spróbować dodać do parametrów jądra systemd.unit=rescue.target
.
Z kolei parametr jądra systemd.unit=emergency.target
udostępni powłokę roota najwcześniej jak to możliwe. Będzie to jednak jeszcze przed zamontowaniem głównego systemu plików z uprawnieniami do odczytu i zapisu. Zajdzie konieczność ręcznego wykonania:
# mount -o remount,rw /
Innym podejściem jest włączenie „wczesnej powłoki debugowania” systemd za pomocą debug-shell.service
. Przy następnym rozruchu usługa ta otwiera powłokę logowania roota na tty9, w bardzo wczesnej fazie rozruchu. Można ją włączyć parametrem rozruchowym jądra systemd.debug-shell=1
albo włączyć na stałe za pomocą systemctl enable debug-shell
(wówczas trzeba ją będzie wyłączyć po zakończenia procesu debugowania).
Więcej informacji o debugowaniu rozruchu kończącego się niepowodzeniem za pomocą systemd można znaleźć w artykule Diagnosing Boot Problems.
4.1.5. Przygotowanie bezpiecznego środowiska do uaktualnienia
Ważne
Jeśli korzysta się z usług VPN (takich jak tinc), to mogą one nie być dostępne w czasie aktualizacji. Proszę zapoznać się z rozdziałem Przygotowanie do przestoju usług.
Aby zapewnić sobie większy margines bezpieczeństwa podczas aktualizacji zdalnej sugeruje się uruchomić proces aktualizacji w wirtualnej konsoli zapewnionej przez programy screen
lub tmux
, która pozwala na bezpieczne ponowne podłączenie oraz zapewnia trwałość procesu aktualizacji, nawet przy tymczasowym zerwaniu połączenia zdalnego.
Użytkownicy demona watchdog z pakietu micro-evtd przed aktualizacją powinni go zatrzymać i wyłączyć licznik watchdog, aby uniknąć fałszywych restartów w trakcie procesu aktualizacji:
# service micro-evtd stop
# /usr/sbin/microapl -a system_set_watchdog off
4.2. Rozpoczynanie od „czystego” Debiana
Proces aktualizacji opisany w tym rozdziale dotyczy „czystych” systemów Debian, w wydaniu stabilnym. APT reguluje to, co jest zainstalowane w danym systemie. Jeśli konfiguracja APT zawiera dodatkowe źródła poza bookworm lub jeśli instalowano pakiety z innych wydań albo ze źródeł zewnętrznych, to aby zapewnić gładki przebieg procesu aktualizacji, wskazane może być usunięcie tych potencjalnych komplikacji.
APT przechodzi na odmienny format konfigurujący miejsce pochodzenia pobieranych pakietów. Pliki /etc/apt/sources.list
i *.list
w katalogu /etc/apt/sources.list.d/
są zastępowane plikami w tym samym katalogu, lecz o nazwach kończących się na .sources
, korzystających z nowego, czytelniejszego formatu (styl deb822). Szczegóły opisano w podręczniku sources.list(5). Przykłady konfiguracji APT-a w niniejszych uwagach do wydania będą podawane w nowym formacie deb822.
Jeśli dany system używa wielu plików ze źródłami, należy się upewnić, że pozostaną spójne.
4.2.1. Aktualizacja do Debiana 12 (bookworm)
Obsługiwana jest tylko aktualizacja z Debiana 12 (bookworm). Można sprawdzić używaną wersję Debiana za pomocą:
$ cat /etc/debian_version
Proszę przejść przez proces opisany w Uwagach do wydania Debiana 12 pod adresem https://www.debian.org/releases/bookworm/releasenotes, aby dokonać uprzedniej aktualizacji do Debiana 12, jeśli jest to konieczne.
4.2.2. Aktualizacja do najnowszego wydania punktowego
Procedura ta zakłada, że system został zaktualizowany do ostatniej aktualizacji punktowej bookworm. Jeśli się tego nie wykonało lub nie jest się tego pewnym należy wykonać instrukcje z Uaktualnienie wydania bookworm.
4.2.3. Backporty Debiana
Backporty Debiana pozwalają użytkownikom stabilnego Debiana na uruchamianie aktualniejszych wersji pakietów (kosztem pewnych ustępstw dotyczących przetestowania i bezpieczeństwa pakietów). Zespół ds. Backportów Debiana utrzymuje podzbiór pakietów z następnego wydania Debiana, dostosowanych i zrekompilowanych do użytku z aktualnym wydaniem stabilnym Debiana.
Pakiety z bookworm-backports mają numery wersji niższe, niż ich wersje w wydaniu trixie, co zwykle umożliwia łatwe uaktualnienie do trixie, w ten sam sposób jak „czystych” pakietów bookworm, podczas aktualizacji dystrybucji. Choć nie są znane potencjalne problemy, ścieżka aktualizacji z backportów jest mniej przetestowana, zatem nieco ryzykowniejsza.
Ostrzeżenie
O ile zwykle backporty Debiana są wspierane, to brak jest czystej ścieżki aktualizacji z backportów sloppy („niechlujnych”; które używają wpisów w źródłach APT-a odnoszących się do bookworm-backports-sloppy).
Podobnie jak przy Nieoficjalnych źródłach, użytkownikom zaleca się usunięcie wpisów „bookworm-backports” ze swoich plików ze źródłami APT-a przed aktualizacją. Po jej ukończeniu, można rozważyć dodanie „trixie-backports” (zob. https://backports.debian.org/Instructions/).
Więcej informacji znajduje się na stronie Wiki nt. backportów.
4.2.4. Aktualizowanie bazy pakietów
Należy upewnić się, że baza danych dotycząca pakietów jest gotowa, przed aktualizacją. Jeśli korzysta się z innego menedżera pakietów, takiego jak aptitude lub synaptic, proszę przejrzeć oczekujące akcje. Pakiet przeznaczony do instalacji lub usunięcia może negatywnie wpłynąć na przebieg aktualizacji. Proszę zauważyć, że naprawienie tego problemu będzie możliwe tylko wówczas, gdy pliki ze źródłami APT-a wciąż wskazują na wydanie „bookworm”, a nie na „stable” lub „trixie” - patrz Sprawdzenie swojej konfiguracji APT-a.
4.2.5. Usunięcie przestarzałych pakietów
Dobrym pomysłem jest usunięcie przestarzałych pakietów ze swojego systemu przed aktualizacją. Mogą one wprowadzić dodatkowe komplikacje w trakcie procesu aktualizacji, a także narażać na problemy związane z bezpieczeństwem, jako że nie są już dłużej utrzymywane.
4.2.6. Usunięcie pakietów spoza Debiana
Poniżej podano dwie metody znajdowania zainstalowanych pakietów, które nie pochodzą z Debiana, za pomocą apt
lub apt-forktracer
. Proszę zauważyć, że obie nie są w 100% dokładne (np. przykład z aptem pokaże pakiety dostępne niegdyś w Debianie, takie jak stare pakiety z jądrem).
$ apt list '?narrow(?installed, ?not(?origin(Debian)))'
$ apt-forktracer | sort
4.2.7. Usunięcie resztkowych plików konfiguracyjnych
Poprzednia aktualizacja mogła pozostawić nieużywane kopie plików konfiguracyjnych, stare wersje plików konfiguracyjnych, wersje dostarczone przez opiekunów pakietów itp. Usunięcie resztkowych plików z poprzednich aktualizacji może oszczędzić nieporozumień. Resztkowe pliki konfiguracyjne można znaleźć poleceniem:
# find /etc -name '*.dpkg-*' -o -name '*.ucf-*' -o -name '*.merge-error'
4.2.8. Składowe non-free i non-free-firmware
Jeśli w systemie zainstalowano oprogramowanie układowe z sekcji non-free, zaleca się dodać do swoich źródeł APT również non-free-firmware
.
4.2.9. Sekcja proposed-updates
Jeśli w swoich plikach źródeł APT-a znajduje się sekcja proposed-updates
należy usunąć ją przed rozpoczęciem aktualizacji systemu. Jest to środek ostrożności zmniejszający prawdopodobieństwo konfliktów.
4.2.10. Nieoficjalne źródła
Jeśli zainstalowano pakiety pochodzące spoza Debiana należy pamiętać, że mogą one zostać usunięte podczas aktualizacji z powodu konfliktów w zależnościach. Jeśli pakiety zostały zainstalowane przez dodanie dodatkowego archiwum pakietów w plikach ze źródłami APT-a, należy sprawdzić, czy nie oferuje ono pakietów skompilowanych dla wydania trixie i odpowiednio zmienić wpis z danym źródłem, w tym samym czasie, co pozostałe wpisy związane z pakietami Debiana.
Część użytkowników może posiadać nieoficjalne, backportowane, wersje pakietów, które są „nowsze” niż pakiety zainstalowane w Debianie bookworm. Te pakiety będą prawdopodobnie sprawiać kłopoty z powodu konfliktów plików [4]. Rozdział Możliwe problemy przy aktualizacji opisuje sposoby rozwiązywania konfliktów plików.
4.2.11. Wyłączenie priorytetów APT-a (APT pinning)
Jeśli skonfigurowano APT w celu instalacji konkretnych pakietów z dystrybucji innej niż stabilna (np. testowej), konieczna może okazać się zmiana konfiguracji priorytetów APT-a (przechowywanej w /etc/apt/preferences
i /etc/apt/preferences.d/
), aby zezwolić na aktualizację pakietów do wersji nowego wydania stabilnego. Więcej informacji na ten temat można znaleźć w podręczniku systemowym apt_preferences(5).
4.2.12. Sprawdzenie statusu pakietów
Niezależnie od wybranej metody aktualizacji zaleca się uprzednie sprawdzenie wszystkich pakietów i zweryfikowanie czy wszystkie nadają się do aktualizacji. Następujące polecenie pokaże pakiety o statusie „częściowo zainstalowany” lub „nieprawidłowa konfiguracja” i te z jakimkolwiek statusem błędu.
$ dpkg --audit
Można również sprawdzić stan wszystkich pakietów za pomocą aptitude
lub poleceniami takimi jak
$ dpkg -l
albo:
# dpkg --get-selections '*' > ~/curr-pkgs.txt
Alternatywnie, można również użyć apt
.
# apt list --installed > ~/curr-pkgs.txt
Pożądane może okazać się usunięcie wszelkich zatrzymań z pakietów. Jeśli jakikolwiek pakiet wymagany do przeprowadzenia aktualizacji będzie zatrzymany, to aktualizacja nie powiedzie się.
$ apt-mark showhold
Jeśli zmieniono jakiś pakiet lub ponownie skompilowano go lokalnie bez zmiany nazwy ani dodania epoki do nazwy, konieczne będzie zatrzymanie go, aby zapobiec uaktualnieniu.
Stan „zatrzymania” pakietu w apt
można zmienić za pomocą:
# apt-mark hold package_name
Aby usunąć stan „zatrzymania” należy zastąpić hold
przez unhold
.
Jeśli istnieje potrzeba poprawy czegokolwiek, najlepiej jest upewnić się, że źródła APT wciąż odnoszą się do wydania bookworm, zgodnie z opisem Sprawdzenie swojej konfiguracji APT-a.
4.3. Przygotowanie plików źródeł APT-a
Przed przystąpieniem do aktualizacji konieczna jest zmiana konfiguracji APT-a, w celu dodania źródeł wydania trixie i zwykle usunięcia źródeł wydania bookworm.
Jak wspomniano w rozdziale Rozpoczynanie od „czystego” Debiana, zalecamy korzystanie z nowego formatu w stylu deb822, co wymaga zastąpienia pliku /etc/apt/sources.list
i wszelkich plików *.list
w katalogu /etc/apt/sources.list.d/
pojedynczym plikiem o nazwie debian.sources
w katalogu /etc/apt/sources.list.d/
(jeśli się tego jeszcze nie zrobiło). Poniżej znajduje się przykład pokazujący, jak taki plik powinien zwykle wyglądać.
APT weźmie pod uwagę wszystkie pakiety, które może znaleźć za pomocą dowolnego ze skonfigurowanych archiwów i zainstaluje pakiety o najwyższym numerze wersji, dając priorytet wcześniejszym wierszom w pliku. Stąd, jeśli wymieniono kilka położeń powinno się zwykle jako pierwszy umieścić lokalny dysk twardy, następnie CD-ROM-y, a na końcu zdalne serwery lustrzane.
Wydanie można określić dzięki nazwie kodowej (np. „bookworm”, „trixie”) lub statusowi wydania („oldstable” - stare stabilne, „stable” - stabilne, „testing” - testowe, „unstable” - niestabilne). Zapis odnoszący się do nazwy kodowej ma tę zaletę, że użytkownik nie zostanie nigdy zaskoczony nowym wydaniem. Z tego powodu to rozwiązanie jest preferowane w niniejszym dokumencie. Z drugiej strony, powoduje to konieczność samodzielnego sprawdzania czy nie wydano nowej wersji systemu. Jeśli użyje się nazwy statusu, po wydaniu nowej wersji pokaże się bardzo dużo dostępnych aktualizacji pakietów.
Debian udostępnia dwie listy dyskusyjne z ogłoszeniami, aby ułatwić bieżące śledzenie ważnych informacji związanych z wydaniami Debiana:
Po zapisaniu się do listy dyskusyjnej z ogłoszeniami nt. Debiana, przy każdym nowym wydaniu Debiana wysyłana będzie informacja. Może to nastąpić np. gdy „trixie” zmieni się z wydania „testing” (testowego) na „stable” (stabilne).
Po zapisaniu się do listy dyskusyjnej z ogłoszeniami związanymi z bezpieczeństwem Debiana, będzie można śledzić wszystkie ogłoszenia bezpieczeństwa publikowane przez Debiana.
4.3.1. Dodanie internetowych źródeł APT-a
W nowych instalacjach, domyślną konfiguracją APT-a jest korzystanie z usługi CDN APT-a Debiana, która zapewnia, że pakiety są automatycznie pobierane z pobliskiego, w rozumieniu sieciowym, serwera. Jako że jest to stosunkowo nowa usługa, starsze instalacje mogą posiadać konfigurację, która wciąż wskazuje na jeden z głównych serwerów internetowych Debiana lub na jeden z serwerów lustrzanych. Jeśli jeszcze tego nie uczyniono, zaleca się przełączenie na korzystanie z usługi CDN w swojej konfiguracji APT-a.
Aby używać usługi CDN, należy dodać wiersz podobny do poniższego do swojej konfiguracji źródeł APT-a (zakładając, że korzysta się z sekcji main
i contrib
): Aby używać usługi CDN, następująca konfiguracja APT-a (zakładając, że korzysta się z sekcji archiwum main
i non-free-firmware
) jest prawidłowa w pliku /etc/apt/sources.list.d/debian.sources
:
Types: deb URIs: https://deb.debian.org/debian Suites: trixie trixie-updates Components: main non-free-firmware Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg Types: deb URIs: https://security.debian.org/debian-security Suites: trixie-security Components: main non-free-firmware Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
Proszę się upewnić, że usunęło się wszystkie stare pliki źródeł.
Jeśli jednak otrzymuje się lepsze rezultaty korzystając z konkretnego serwera lustrzanego, który jest zlokalizowany w pobliżu, w rozumieniu sieci, zamiast usług CDN, to URI danego serwera lustrzanego można zastąpić w wierszu URIs (przykładowo) następującym „URIs: https://mirrors.kernel.org/debian”.
Jeśli chce się korzystać pakietów z sekcji contrib
lub non-free
archiwum, można dodać te nazwy do wszystkich wierszy Components:
.
Po dodaniu nowych źródeł należy wyłączyć istniejące wcześniej wpisy archiwów w plikach źródeł APT-a, dodając na ich początku znak kratki (#
).
4.3.2. Dodanie źródeł APT-a do lokalnego serwera lustrzanego
Zamiast używania zdalnych serwerów lustrzanych, można zmodyfikować swoje pliki źródeł APT-a tak, aby skorzystać z kopii na dysku lokalnym (np. zamontowanej za pomocą NFS).
Kopia serwera lustrzanego może się znajdować np. w /var/local/debian/
i posiadać główne katalogi, takie jak:
/var/local/debian/dists/trixie/main/... /var/local/debian/dists/trixie/contrib/...
Aby użyć jej ze swoim programem apt, proszę dodać następujący wiersz do swojego pliku /etc/apt/sources.list.d/debian.sources
:
Types: deb URIs: file:/var/local/debian Suites: trixie Components: main non-free-firmware Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
Ponownie, po dodaniu nowych źródeł, należy wyłączyć poprzednio występujące wpisy archiwów.
4.3.3. Dodanie źródeł APT-a do nośników optycznych
Aby korzystać wyłącznie z płyt DVD (lub CD lub Blu-ray), proszę wyłączyć istniejące wpisy we wszystkich plikach ze źródłami APT-a dodając na początku znak kratki (#
).
Proszę upewnić się, że w pliku /etc/fstab
istnieje wiersz pozwalający na zamontowanie CD-ROM-u w punkcie montowania /media/cdrom
. Na przykład, jeśli napęd CD-ROM jest urządzeniem /dev/sr0
, to plik /etc/fstab
powinien zawierać wiersz podobny do poniższego:
/dev/sr0 /media/cdrom auto noauto,ro 0 0
Proszę zauważyć, że w czwartym polu, między słowami noauto,ro
nie mogą występować spacje.
Aby sprawdzić, czy wszystko działa, proszę włożyć płytę i spróbować wykonać
# mount /media/cdrom # this will mount the CD to the mount point
# ls -alF /media/cdrom # this should show the CD's root directory
# umount /media/cdrom # this will unmount the CD
Następnie, proszę uruchomić:
# apt-cdrom add
dla każdej płyty binarnej Debiana, aby dodać dane z każdego CD do bazy danych APT-a.
4.4. Aktualizacja pakietów
Zalecanym sposobem aktualizacji z poprzednich wydań Debiana jest korzystanie z narzędzia zarządzania pakietami apt
.
Informacja
apt
jest przeznaczony do stosowania interaktywnego i nie powinien być używany w skryptach. Skrypty powinny wykorzystywać apt-get
, który posiada stabilne wyjście, lepiej przeznaczone do przetwarzania.
Proszę nie zapomnieć o zamontowaniu potrzebnych partycji do odczytu i zapisu (przede wszystkim partycji głównej i /usr
), za pomocą polecenia podobnego do poniższego:
# mount -o remount,rw /mountpoint
Proszę dobrze sprawdzić czy wpisy ze źródłami APT-a (w plikach w katalogu /etc/apt/sources.list.d/
) odnoszą się do wydania „trixie” lub „stable”. Nie powinno być tam wpisów dotyczących bookworm.
Informacja
Wiersze źródeł CD-ROM-u mogą niekiedy wskazywać na „unstable
”; choć może być to mylące, nie należy tego zmieniać.
4.4.1. Zapisanie sesji
apt
odnotuje stan zmienionych pakietów w pliku /var/log/apt/history.log
, a wyjście terminala w /var/log/apt/term.log
. Dodatkowo dpkg
odnotuje wszelkie zmiany stanu pakietów w pliku /var/log/dpkg.log
. Jeśli korzysta się z aptitude
, zapisze on również zmiany stanu pakietów w /var/log/aptitude
.
Jeśli wystąpi problem, gotowy będzie dziennik tego co się zdarzyło, który w razie potrzeby będzie można wykorzystać do zapewnienia dokładnych informacji w zgłoszeniu błędu.
term.log
pozwoli również na przejrzenie informacji, które już zniknęły z ekranu. Jeśli jest się w konsoli systemowej wystarczy przełączyć się do VT2 (za pomocą Alt+F2
) aby je przeglądnąć.
4.4.2. Aktualizowanie listy pakietów
Na początku, należy pobrać listę dostępnych pakietów nowego wydania. Można to zrobić za pomocą polecenia:
# apt update
4.4.3. Zapewnienie wystarczającej ilości wolnego miejsca
Konieczne jest upewnienie się, że system posiada wystarczająco dużo wolnej przestrzeni dyskowej przed pełną aktualizacją systemu, opisaną w rozdziale Aktualizacja systemu. Wszystkie pakiety potrzebne do instalacji są najpierw pobierane z sieci i przechowywane w /var/cache/apt/archives
(przy pobieraniu w podkatalogu partial/
), dlatego trzeba zapewnić sobie wolne miejsce na partycji z katalogiem /var/
. Po zakończeniu pobierania wolne miejsce potrzebne będzie na innych partycjach, aby zainstalować aktualizowane pakiety (które mogą zawierać większe pliki wykonywalne lub więcej danych) i nowe pakiety, pobrane przy aktualizacji. Jeśli jest zbyt mało wolnego miejsca, można doprowadzić do trudnej w opanowaniu, niedokończonej aktualizacji.
Polecenie apt
może pokazać szczegółowe informacje o potrzebnym miejscu. Przed wykonaniem aktualizacji przybliżoną wartość wymaganej przestrzeni można zobaczyć wykonując:
# apt -o APT::Get::Trivial-Only=true full-upgrade
[ ... ]
XXX upgraded, XXX newly installed, XXX to remove and XXX not upgraded.
Need to get xx.xMB of archives.
After this operation, AAAMB of additional disk space will be used.
Informacja
Wykonanie tego polecenia na początku procesu aktualizacji może wypisać błąd, z powodów opisanych w następnych rozdziałach. Trzeba wówczas poczekać z komendą do zakończenia minimalnej aktualizacji systemu (opisanej w rozdziale Minimalna aktualizacja systemu.
Jeśli zabraknie miejsca, apt
wyświetli ostrzeżenie:
E: You don't have enough free space in /var/cache/apt/archives/.
W takim przypadku, konieczne będzie zwolnienie miejsca na dysku. Można:
Usunąć pakiety pobrane wcześniej do instalacji (z
/var/cache/apt/archives
). Zwolnienie bufora pakietów za pomocą poleceniaapt clean
usunie wszystkie pobrane wcześniej pliki pakietów.Usunąć zapomniane pakiety. Jeśli w bookworm korzystano z poleceń
aptitude
lubapt
do ręcznego instalowania pakietów, to programy te przechowują o nich informacje i będą w stanie oznaczyć jako przestarzałe pakiety, pobrane jedynie przez zależności, które nie są dłużej potrzebne po usunięciu pakietu. Nie przeznaczą one do usunięcia pakietów zainstalowanych ręcznie lecz jedynie te zainstalowane automatycznie. Aby usunąć nieużywane obecnie pakiety zainstalowane automatycznie proszę wykonać:# apt autoremove
Do znalezienia zbędnych pakietów można również użyć programu
debfoster
. Nie należy usuwać wszystkich proponowanych przez to narzędzie pakietów bez zastanowienia (szczególnie, jeśli skorzysta się z agresywnych opcji, które nie są domyślne, a są podatne na nieprawidłowe wskazania). Powinno się osobiście przejrzeć pakiety sugerowane do usunięcia (ich zawartość, rozmiar i opis) przed ostateczną decyzją.Usunąć pakiety zajmujące zbyt dużo miejsca, które nie są obecnie potrzebne (można je zawsze doinstalować po aktualizacji). Jeśli zainstalowano pakiet popularity-contest to do wyświetlenia listy nieużywanych pakietów zajmujących najwięcej miejsca można posłużyć się poleceniem
popcon-largest-unused
. Największe pakiety można znaleźć poleceniemdpigs
(z pakietu debian-goodies) lub programemwajig
(poleceniemwajig size
). Można użyć także programu aptitude. W tym celu proszę uruchomićaptitude
w graficznym interfejsie terminalowym, wybraćWidoki > Nowy płaski widok pakietów
, wcisnąćl
, wpisać~i
, następnie wcisnąćS
i wpisać~installsize
. W ten sposób można otrzymać zwięzłą listę do dalszych działań.Usunąć niepotrzebne tłumaczenia i pliki lokalizacji. Można zainstalować pakiet localepurge i skonfigurować go tak, aby zachował w systemie jedynie potrzebne tłumaczenia. Zredukuje to przestrzeń zajętą przez katalog
/usr/share/locale
.Tymczasowo przenieść na inny system lub usunąć całkowicie dzienniki systemowe z katalogu
/var/log/
.Użyć tymczasowego
/var/cache/apt/archives
; można użyć tymczasowego katalogu bufora z innego systemu plików (urządzenia USB, przenośnego dysku, używanego systemu plików, …).Informacja
Proszę nie używać montowań NFS, ponieważ połączenie sieciowe może zostać przerwane przy aktualizacji.
Na przykład, jeśli napęd USB jest zamontowany w
/media/usbkey
:usunięcie poprzednio pobranych pakietów do instalacji:
# apt clean
skopiowanie katalogu
/var/cache/apt/archives
na napęd USB:# cp -ax /var/cache/apt/archives /media/usbkey/
zamontowanie tymczasowego bufora w obecnym:
# mount --bind /media/usbkey/archives /var/cache/apt/archives
przywrócenie pierwotnego katalogu
/var/cache/apt/archives
po aktualizacji:# umount /var/cache/apt/archives
usunięcie pozostałego
/media/usbkey/archives
.
Tymczasowy bufor można utworzyć w dowolnym systemie plików zamontowanym w systemie.
Wykonanie minimalnej aktualizacji (opisanej w rozdziale Minimalna aktualizacja systemu) lub częściowych aktualizacji systemu przed pełną aktualizacją. Umożliwi to częściową aktualizację systemu i pozwoli na wyczyszczenie bufora pakietów przed pełną aktualizacją.
Proszę zwrócić uwagę, że w celu bezpiecznego usunięcia pakietów zaleca się przełączenie swoich plików ze źródłami APT-a z powrotem na wydanie bookworm zgodnie z opisem w rozdziale Sprawdzenie swojej konfiguracji APT-a.
4.4.4. Zatrzymanie systemów monitorujących
Poniewaz apt
może musieć tymczasowo zatrzymać usługi działające na komputerze, prawdopodobnie dobrym pomysłem będzie zatrzymanie usług monitorujących, które mogą zrestartować inne zatrzymane usługi w trakcie aktualizacji. W Debianie, dobrym przykładem takiej usługi jest monit.
4.4.5. Minimalna aktualizacja systemu
W niektórych przypadkach bezpośrednie wykonanie pełnej aktualizacji (opisanej poniżej) może usunąć wiele pakietów, które użytkownik chciałby zachować. Z tego powodu zaleca się wykonanie dwustopniowej aktualizacji: najpierw minimalnej, pozwalającej uporać się z tymi konfliktami, a następnie pełnej, zgodnie z opisem w rozdziale Aktualizacja systemu.
Aby to zrobić, proszę wykonać
# apt upgrade --without-new-pkgs
W ten sposób zaktualizowane zostaną pakiety, które nie wymagają usunięcia lub instalacji innych pakietów.
Minimalna aktualizacja systemu może okazać się przydatna również w systemach z niewielką ilością wolnego miejsca, na których pełna aktualizacja nie może być wykonana z tego powodu.
Jeśli zainstalowano pakiet apt-listchanges to (w domyślnej konfiguracji) wyświetli on ważne informacje o aktualizowanych pakietach w programie stronicującym. Po zapoznaniu się z ich treścią należy wcisnąć q
aby wyjść z programu stronicującego i kontynuować aktualizację.
4.4.6. Aktualizacja systemu
Po wykonaniu poprzednich kroków, nadszedł czas na główną część aktualizacji. Proszę wykonać
# apt full-upgrade
Przeprowadzona zostanie w ten sposób pełna aktualizacja systemu, instalacja najnowszych dostępnych wersji wszystkich pakietów i rozwiązanie wszystkich możliwych zmian zależności pakietów w innych wydaniach. Jeśli jest to konieczne zainstalowane zostaną nowe pakiety (najczęściej nowe wersje bibliotek lub pakiety o nowych nazwach) i usunięte wszystkie niepotrzebne pakiety powodujące konflikty.
Przy aktualizacji z zestawu płyt CD/DVD/BD, użytkownik będzie prawdopodobniej proszony o włożenie określonej płyty w wielu miejscach aktualizacji. Z powodu zależności między pakietami rozproszonymi na poszczególnych nośnikach konieczne może okazać się wielokrotne wkładanie tej samej płyty.
Nowe wersje zainstalowanych pakietów, które nie mogą być zainstalowane bez zmiany statusu innego pakietu zostaną pozostawione w bieżącej wersji (wyświetlone jako „zatrzymane”). Można to rozwiązać za pomocą aptitude
, wybierając te pakiety do instalacji; można też spróbować wykonać apt install pakiet
.
4.5. Możliwe problemy przy aktualizacji
Poniższe sekcje opisują znane problemy, które mogą pojawić się przy aktualizacji do wydania trixie.
4.5.1. Podczas pełnej aktualizacji pojawia się błąd „Nie udało się wykonać natychmiastowej konfiguracji”.
W niektórych przypadkach polecenie apt full-upgrade
po pobraniu pakietów może wypisać następujący błąd:
E: Could not perform immediate configuration on 'package'. Please see man 5 apt.conf under APT::Immediate-Configure for details.
W takim przypadku, polecenie apt full-upgrade -o APT::Immediate-Configure=0
powinno pozwolić pomyślnie przeprowadzić aktualizację.
Innym wyjściem pozwalającym obejść problem jest tymczasowe dodanie do swoich źródeł APT-a źródeł wydań bookworm i trixie, a następnie uruchomienie apt update
.
4.5.2. Spodziewane usunięcia pakietów
Proces aktualizacji do wydania trixie może prosić o usunięcie pewnych pakietów. Dokładna lista będzie zależała od obecnie zainstalowanych pakietów. Niniejsze uwagi do wydania dają ogólny obraz tego zabiegu, jednak w razie wątpliwości, przed kontynuowaniem należy sprawdzić listę usuwanych pakietów proponowaną przez każdą z metod. Więcej informacji o pakietach przestarzałych w wydaniu trixie znajduje się w rozdziale Przestarzałe pakiety.
4.5.3. Konflikty lub pętle „wymaga wstępnie”
Czasami potrzebne jest włączenie opcji APT::Force-LoopBreak
w APT, aby móc tymczasowo usunąć pakiet istotny, z powodu pętli konfliktów/zależności wstępnych. Polecenie apt
wyświetli o tym ostrzeżenie i przerwie aktualizację. Można obejść problem podając opcję -o APT::Force-LoopBreak=1
w wierszu polecenia apt
.
Istnieje możliwość, że struktura zależności systemowych będzie na tyle naruszona, że konieczna będzie ręczna interwencja. Zwykle oznacza to użycie polecenia apt
lub
# dpkg --remove package_name
aby wyeliminować część przeszkadzających pakietów lub
# apt -f install
# dpkg --configure --pending
W sytuacjach ekstremalnych konieczne może być wymuszenie reinstalacji za pomocą polecenia
# dpkg --install /path/to/package_name.deb
4.5.4. Konflikty plików
Konflikty plików nie powinny wystąpić przy aktualizacji z „czystego” wydania bookworm, lecz mogą się pojawić przy zainstalowanych nieoficjalnych backportach. Konflikty plików objawiają się komunikatami błędów, podobnymi do poniższego:
Unpacking <package-foo> (from <package-foo-file>) ...
dpkg: error processing <package-foo> (--install):
trying to overwrite `<some-file-name>',
which is also in package <package-bar>
dpkg-deb: subprocess paste killed by signal (Broken pipe)
Errors were encountered while processing:
<package-foo>
Można spróbować rozwiązać konflikt plików przez wymuszenie usunięcia pakietu wymienionego w ostatnim wierszu komunikatu błędu:
# dpkg -r --force-depends package_name
Po zakończeniu naprawy powinno się dać wznowić aktualizację, ponawiając poprzednio wymienione polecenia apt
.
4.5.5. Zmiany konfiguracji
Podczas aktualizacji zostaną wyświetlone pytania dotyczące konfiguracji lub ponownej konfiguracji kilku pakietów. Gdy pytanie będzie dotyczyło tego czy plik w katalogu /etc/init.d
lub plik /etc/manpath.config
ma zostać zastąpiony wersją opiekuna pakietu to odpowiedź powinna z reguły brzmieć „tak” (aby zapewnić spójność systemu). Zawsze można cofnąć się do starszej wersji, ponieważ są one zapisywane z rozszerzeniem .dpkg-old
.
W razie wątpliwości, proszę zapisać nazwę pakietu lub pliku i zdecydować o tym później. Można przeszukać plik z zapisem sesji, aby znaleźć informację wyświetloną na ekranie przy aktualizacji.
4.5.6. Zmiany sesji na konsoli
Jeśli aktualizacja jest wykonywana z lokalnej konsoli systemowej, w którymś momencie aktualizacji może zdarzyć się, że konsola zostanie przesunięta na inny widok i straci się obraz procesu aktualizacji. Prawdopodobieństwo takiego zdarzenia istnieje np. w systemach z interfejsem graficznym, gdy restartowany jest menedżer logowania.
Aby odzyskać konsolę, na której trwa aktualizacja, należy wcisnąć Ctrl+Alt+F1
(z graficznego ekranu powitalnego) lub Alt+F1
(z trybu lokalnej konsoli tekstowej), aby przełączyć się z powrotem na terminal wirtualny 1. Proszę zastąpić F1
klawiszem funkcyjnym o tym samym numerze co terminal wirtualny, na którym trwa aktualizacja. Można również skorzystać ze kombinacji Alt+strzałka-w-lewo
lub Alt+strzałka-w-prawo
aby przenosić się pomiędzy kolejnymi terminalami tekstowymi.
4.7. Przygotowanie do kolejnego wydania
Po aktualizacji jest kilka rzeczy, które można zrobić w celu przygotowania do następnego wydania.
Usunięcie pakietów oznaczonych teraz jako przestarzałe zgodnie z opisem w rozdziałach Zapewnienie wystarczającej ilości wolnego miejsca i Przestarzałe pakiety. Proszę przejrzeć, których plików konfiguracyjnych używają i rozważyć całkowite wyczyszczenie (ang. purge) pakietów, w celu usunięcia ich plików konfiguracyjnych. Zob. też Czyszczenie usuniętych pakietów.
Aktualizacja swoich źródeł APT. Stary format służący do określania używanych przez APT-a repozytoriów staje się przestarzały - zob. Przygotowanie plików źródeł APT-a oraz podręcznik sources.list(5). Jeśli jeszcze nie dokonało się migracji wszystkich swoich plików konfiguracyjnych, można skorzystać z nowego polecenia
apt
:apt modernize-sources
.
4.7.1. Czyszczenie usuniętych pakietów
Ogólnym zaleceniem jest czyszczenie usuniętych pakietów. Ma to szczególny sens, jeśli pakiety zostały usunięte we wcześniejszej aktualizacji wydania (np. przy aktualizacji do bookworm) lub pochodzą od zewnętrznych dostawców. W szczególności znane są problemy ze starymi skryptami init.d.
Ostrzeżenie
Wyczyszczenie pakietu zazwyczaj usuwa również jego pliki dziennika, dlatego można rozważyć uprzednie wykonanie ich kopii zapasowej.
Poniższe polecenie wyświetla listę wszystkich usuniętych pakietów z pozostawionymi w systemie plikami konfiguracyjnymi:
$ apt list '~c'
Pakiety można wyczyścić poleceniem apt purge
. Aby wyczyścić od razu wszystkie, można skorzystać z następującego polecenia:
# apt purge '~c'
4.8. Przestarzałe pakiety
Wprowadzając wiele nowych pakietów, trixie porzuca i pomija również sporo starych pakietów z wydania bookworm. Nie ma dla nich ścieżki aktualizacji. Choć nic nie stoi na przeszkodzie, aby w razie potrzeby używać takich pakietów to projekt Debian kończy wsparcie bezpieczeństwa po roku od wydania trixie [5] i nie dostarczy innego wsparcie w międzyczasie. Zaleca się zastąpienie ich dostępnymi alternatywami jeśli takie istnieją.
Jest wiele powodów, dla których pakiet mógł zostać usunięty z dystrybucji: nie jest dłużej utrzymywany przez projekt macierzysty, nie ma chętnego Dewelopera Debiana, który byłby zainteresowany opiekowaniem się pakietem, funkcja którą pełnił została przejęta przez inne programy (lub nowszą wersję), nie jest dłużej uważany za odpowiedni dla wydania trixie ze względu na poważne błędy. W tym ostatnim przypadku pakiet może być wciąż obecny w dystrybucji „niestabilnej”.
„Przestarzałe i lokalnie utworzone pakiety” można wypisać i wyczyścić z wiersza poleceń za pomocą:
$ apt list '~o'
# apt purge '~o'
System śledzenia błędów Debiana często udostępnia dodatkowe informacje nt. powodów usunięcia danego pakietu. Należy przejrzeć zarówno archiwalne zgłoszenia błędów samego pakietu jak i archiwalne zgłoszenia pseudopakietu ftp.debian.org.
Lista pakietów uznanych za przestarzałe w wydaniu trixie jest dostępna w rozdziale Znane pakiety oznaczone jako przestarzałe.
4.8.1. Przejściowe pakiety atrapy
Niektóre pakiety z wydania bookworm mogły zostać zastąpione w wydaniu trixie przez przejściowe pakiety atrapy, które są pustymi wypełniaczami, zaprojektowanymi do ułatwienia uaktualnień. Na przykład, jeśli aplikacja będąca uprzednio jednym pakietem została podzielona na kilka nowych, może pojawić się przejściowy pakiet o tej samej nazwie jak stary pakiet, zawierający odpowiednie zależności, powodujące zainstalowanie nowych pakietów. Później można bezpiecznie usunąć zbędny pakiet atrapę.
Opisy pakietów atrap zwykle wskazują ich przeznaczenie. Nie są jednak zestandaryzowane; w szczególności, część pakietów „atrap” zaprojektowano, aby pozostały zainstalowane, dzięki czemu pobierają pełny zestaw oprogramowania lub śledzą najnowszą wersję jakiegoś programu.