Jak zaktualizować wszystkie zainstalowane pakiety w LEDE?


Odpowiedzi:


54

Nie ma jednego polecenia ani argumentu, ale możesz to łatwo zrobić. Aby zaktualizować wszystkie pakiety, LEDE zaleca :

opkg list-upgradable | cut -f 1 -d ' ' | xargs opkg upgrade 

Istnieją inne mniej wydajne sposoby, w których ludzie używają AWK i tym podobnych.

Ważnym zastrzeżeniem często jest częste stosowanie LEDE / OpenWRTopkg

Ponieważ oprogramowanie układowe LEDE przechowuje system podstawowy na skompresowanej partycji tylko do odczytu, wszelkie aktualizacje podstawowych pakietów systemowych będą zapisywane na partycji do odczytu i zapisu, a zatem zajmą więcej miejsca, niż gdyby po prostu nadpisywały starszą wersję w skompresowanej bazie partycja systemowa. Zaleca się sprawdzenie dostępnego miejsca w wewnętrznej pamięci flash i wymagań dotyczących miejsca na aktualizacje podstawowych pakietów systemowych.


1
innym sposobem na to jest użycie powłoki for loop. np.> dla listy w opkg do aktualizacji | cut -f 1 -d '' '; wykonaj opkg upgrade "$ a"; gotowe
Scott

5

Stworzyłem mały skrypt wywoływany opkg-upgradew celu lepszego uaktualnienia.

Jest dostępny na github:
https://github.com/tavinus/opkg-upgrade

Uaktualnienie będzie tak proste jak:
opkg-upgrade

Instrukcje instalacji Curl / Wget tutaj!


Jak wspomniano w pliku readme.md , mogą wystąpić problemy z aktualizacją.

Możliwe problemy:

  • Problem squashfs (ROM jest tylko do odczytu, więc aktualizacje zajmują więcej miejsca we Flashu lub Extroocie) .
  • Problem z dev / trunk (beta) (wersje beta mogą zostać zmiękczone podczas aktualizacji) .
  • Problem dotyczący miejsca (potrzeba wystarczającej ilości wolnego miejsca do pobierania i instalowania) .

Powinienem również wspomnieć, że aktualizacja z CRON to bardzo zły pomysł!
Powiedziałbym, że nawet przy regularnych uaktualnieniach Linuksa dystrybucja nie jest dobrym pomysłem.
Istnieje wiele rzeczy, które mogą się nie udać przy uaktualnieniach, a ponieważ OpenWrt zwykle działa na urządzeniach, które można zamurować, nie ma sensu robić tego bez nadzoru.

Krótko mówiąc, jedynymi przypadkami, w których kiedykolwiek BĘDĘ ulepszyłbym to:

  • Jeśli używasz extroot na ogromnej pamięci USB
  • Jeśli wewnętrzna pamięć flash to 32 Mb lub więcej
  • Jeśli NIE używasz dev / trunk (beta)
  • Jeśli działa na ext4 FS z dużą ilością miejsca (x86 metal, VM, i tak dalej)

Mimo to nigdy nie dokonałbym aktualizacji z crona.
Pomyślałem również 20 razy, zanim zaktualizowałem wewnętrzny Flash (nawet te duże), ponieważ to by go degradowało szybciej.

Mój skrypt ma opcję wysłania raportu e-mail z dostępnymi aktualizacjami.
Polecam więc dodanie narzędzia raportującego do crona, a następnie ludzie mogą zaktualizować ręcznie po otrzymaniu wiadomości e-mail. To sprawia, że ​​wszystko jest bezpieczniejsze, a jednocześnie daje możliwość zmiany aktualizacji.

Twoje zdrowie!
Gus

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.