Articles

Uaktualnianie i uaktualnianie Raspberry Pi OS

Posted on

Ta sekcja opisuje, jak wdrażać aktualizacje oprogramowania na urządzeniach z systemem Raspberry Pi OS.

Zanim przejdziemy dalej, sprawdźmy, dlaczego aktualizowanie naszych urządzeń jest ważne.

Pierwszym i prawdopodobnie najważniejszym powodem jest bezpieczeństwo. Urządzenie z systemem Raspberry Pi OS zawiera miliony linii kodu, na którym polegasz. Z biegiem czasu, te miliony linii kodu będzie narażać znanych luk znanych jako Common Vulnerabilities and Exposures (CVE), które są udokumentowane w publicznie dostępnych bazach danych, co oznacza, że są one łatwe do wykorzystania. Oto przykład ostatniego CVE znalezionego w KODI, który daje nieco więcej wglądu w to, jakie informacje są dostępne w bazie danych i jak CVE są śledzone. Jedynym sposobem, aby złagodzić te exploity jako użytkownik Raspberry Pi OS jest, aby utrzymać swoje oprogramowanie do daty, jak repozytoria upstream śledzić CVEs ściśle i starają się złagodzić je szybko.

Drugi powód, który jest związany z pierwszym, jest to, że oprogramowanie jesteś uruchomiony na urządzeniu najprawdopodobniej zawiera błędy. Niektóre z nich to CVE, ale błędy mogą również wpływać na pożądaną funkcjonalność bez związku z bezpieczeństwem. Utrzymując swoje oprogramowanie na bieżąco, jesteś obniżenie szans trafienia tych bugs.

APT (Advanced Packaging Tool)

Aby zaktualizować oprogramowanie w Raspberry Pi OS, można użyć narzędzia apt w terminalu. Otwórz okno terminala z paska zadań lub menu aplikacji:

Terminal

Po pierwsze, zaktualizuj listę pakietów w systemie, wpisując następujące polecenie:

sudo apt update

Następnie zaktualizuj wszystkie zainstalowane pakiety do najnowszych wersji, wpisując następujące polecenie:

sudo apt full-upgrade

Zauważ, że full-upgrade jest używany zamiast zwykłego upgrade, ponieważ zbiera również wszelkie zmiany zależności, które mogły zostać dokonane.

Ogólnie rzecz biorąc, robi to regularnie będzie utrzymywać swoją instalację na bieżąco dla konkretnego głównego wydania Raspberry Pi OS używasz (np. Stretch). To nie będzie aktualizować z jednego głównego wydania do innego, na przykład, Stretch do Buster.

Jednakże istnieją sporadyczne zmiany w Fundacji obrazu Raspberry Pi OS, które wymagają ręcznej interwencji, na przykład nowo wprowadzony pakiet. Nie są one instalowane wraz z aktualizacją, ponieważ to polecenie aktualizuje tylko pakiety, które są już zainstalowane.

Aktualizacja jądra i firmware’u

Jądro i firmware są zainstalowane jako pakiet Debiana, więc również będą aktualizowane przy użyciu powyższej procedury. Pakiety te są aktualizowane rzadko i po dokładnym przetestowaniu.

Wyczerpanie miejsca

Podczas uruchamiania sudo apt full-upgrade, pokaże on ile danych zostanie pobranych i ile miejsca zajmie na karcie SD. Warto sprawdzić za pomocą df -h czy masz wystarczająco dużo wolnego miejsca na dysku, gdyż niestety apt nie zrobi tego za Ciebie. Należy również pamiętać, że pobrane pliki pakietów (.deb pliki) są przechowywane w /var/cache/apt/archives. Możesz je usunąć, aby zwolnić miejsce za pomocą sudo apt cleansudo apt-get clean w starszych wydaniach apt).

Upgrade ze Stretch do Buster

Ostrzeżenie: Aktualizacja istniejącego obrazu Stretch jest możliwa, ale nie gwarantujemy, że zadziała w każdych okolicznościach i nie zalecamy jej. Jeśli chcesz spróbować uaktualnić obraz Stretch do Bustera, sugerujemy najpierw zrobić kopię zapasową – nie ponosimy odpowiedzialności za utratę danych w wyniku nieudanej aktualizacji.

Aby uaktualnić, najpierw zmodyfikuj pliki /etc/apt/sources.list i /etc/apt/sources.list.d/raspi.list. W obu plikach, zmień każde wystąpienie słowa stretch na buster. (Oba pliki będą wymagały sudo do edycji.)

Następnie otwórz okno terminala i wykonaj:

sudo apt updatesudo apt -y dist-upgrade

Odpowiedz 'tak' na wszystkie monity. Może być również punkt, w którym instalacja zostanie wstrzymana, podczas gdy na ekranie pojawi się strona z informacjami – przytrzymaj klawisz spacji, aby przewinąć to wszystko, a następnie naciśnij q, aby kontynuować.

Na koniec, jeśli nie używasz PulseAudio do niczego innego niż dźwięk Bluetooth, usuń go z obrazu, wpisując:

sudo apt -y purge "pulseaudio*"

Jeśli przenosisz się na nowy model Pi (na przykład Pi 3B+), być może będziesz musiał zaktualizować jądro i firmware, korzystając z powyższych instrukcji.

Rozwiązania stron trzecich

Ta sekcja dotyczy tego, dlaczego rozwiązania stron trzecich mogą być interesujące i dlaczego apt nie jest optymalne dla wszystkich sytuacji. Raspberry Pi nie zaleca żadnych konkretnych narzędzi firm trzecich. Potencjalni użytkownicy powinni określić najbardziej odpowiednie narzędzie dla ich szczególnych wymagań.

Apt jest wygodnym sposobem aktualizacji oprogramowania urządzenia z systemem Raspberry Pi OS, ale ograniczenie tej metody staje się oczywiste, gdy masz większą pulę urządzeń do aktualizacji, a zwłaszcza, gdy nie masz fizycznego dostępu do urządzeń i gdy są one rozmieszczone geograficznie.

Jeśli nie masz fizycznego dostępu do swoich urządzeń i chcesz wdrożyć aktualizacje bez nadzoru Over-The-Air (OTA), oto kilka ogólnych wymagań:

  • Aktualizacja nie może w żadnym wypadku uszkodzić („zblokować”) urządzeń, np.g jeśli aktualizacja zostanie przerwana (utrata zasilania, utrata sieci, itp.), system powinien powrócić do stanu pracy
  • Aktualizacja musi być atomowa: update succeeded lub update failed; nic pomiędzy, co mogłoby spowodować, że urządzenie nadal „działa”, ale z niezdefiniowanym zachowaniem
  • Updating musi być w stanie instalować obrazy/pakiety, które są podpisane kryptograficznie, zapobiegając osobom trzecim instalującym oprogramowanie na twoim urządzeniu
  • Updating musi być w stanie instalować aktualizacje używając bezpiecznego kanału komunikacyjnego

Niestety apt brakuje cech solidności, tj.tj. atomowości i fall-back. Dlatego też zaczęły pojawiać się rozwiązania firm trzecich, które próbują rozwiązać problemy, które muszą być zaadresowane do wdrażania nienadzorowanych aktualizacji OTA.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *