Tento článek se vztahuje pouze na Turris 1.x.
Updater je část firmware, která instaluje nové verze balíčků a udržuje tedy systém aktuální, bezpečný a také přináší nové funkce. Do verze Turris OS 3.7 byl na Turris 1.x používán starý updater. Ve verzi 3.7 jsou všechny routery automaticky migrovány na nový updater zvaný updater-ng. Migrace by měla proběhnout jako součást updatu na tuto verzi bez nutnosti zásahu uživatele.
Hlavním rozdílem je, že updater-ng spravuje všechny balíčky a ne jen předem definovanou sadu balíčků. Co se má aktualizovat a v jakém pořadí již není definované serverem a možnosti nastavení tedy nejsou tak omezené. Nový updater přebírá správu všech balíčků a již neexistují žádné, které by stáli jaksi „mimo“. Vámi doinstalované balíčky se tedy budou také udržovat aktuální.
Zde je popis známých problémů, které mohou nastat při migraci, a jejich řešení. Na vyřešení těchto problémů je většinou nutná znalost příkazové řádky. Pokud neovládáte příkazovou řádku, nebo si na opravu nevěříte, pak, pokud u problému není uvedeno jinak, můžete router uvést do továrního nastavení a provést update z něho (update z továrního nastavení je testován a měl by tak proběhnout bez problémů).
Před řešením problémů s updater-ng se také doporučuje přečíst si k němu dokumentační stránku.
Tato chyba může být prakticky jakoukoliv jinou chybou, nebo se nemusí jednat o žádnou chybu. Bohužel jedná se o problém kdy prvotní běh updateru skončil nenulovým exit kódem, ale souběhem updateru došlo k odstranění informace o jakou chybu se jedná. Jediná možnost jak ověřit co se stalo je tak spustit migraci ručně. V konzoli na routeru tak musíte spustit příkaz:
get-api-crl && updater-migrate.sh
Pokud na routeru příkaz updater-migrate.sh
není přítomen, tak to znamená
pravděpodobně, že se migrace provedla úspěšně a chyba tak nebyla závažná (selhal
skript některého z balíčků, doporučuje se tak jen restartovat router a vše by mělo
být v pořádku).
Pokud několik řádků před koncem je ve výstupu vidět zpráva (v terminálu schopného
barev červeně obarvená) začínající DIE:
pak je nutné provést úpravy podle toho
co daná zpráva hlásí. Většinou se jedná o chybějící balíčky, v takovém případě je
nutné odstranit zmínku o těchto balíčcích ze souboru /etc/updater/auto.lua
.
Případně pokud se jedná o chybu popsanou níže, pak použijte níže popsaný postup.
Tato chyba Vás informuje o tom, že updater-ng je nakonfigurovaný tak aby instaloval balíčky které ale obsahují soubor který má být nainstalován do stejné cesty. Před dvojtečkou je možné vidět problematickou cestu, za dvojtečkou jsou pak dotčené balíčky. Například:
• /etc/dnsmasq.conf: dnsmasq (new-file), dnsmasq-full (existing-file)
Opravu je možné provést odstraněním nadbytečných balíčků ze souboru
/etc/updater/auto.lua
. Pokud se v tomto souboru nalézá řádek pouze s jedním z
dvojice balíčků, pak jej odstraňte, pokud tam vidíte řádky pro oba balíčky,
pak si vyberte který z balíčků si přejete zachovat. V uvedeném příkladu nalezneme
v daném souboru řádek s:
Install "dnsmasq-full" { ignore={ "missing" } }
A to proto, že balíček dnsmasq
je součástí základního systému a není ho tak
jednoduše možné odstranit (pro více informací k tomuto je možné nalézt v
dokumentaci k updater-ng)
Následně spusťte příkaz pkgupdate
, zkontrolujte a případně potvrďte operace
které Vám nabídne. Pokud narazíte na další chybovou hlášku tak znovu konzultujte
tento článek.
Pokud jste se setkali s touto chybou, pak jste se pravděpodobně pokoušeli provádět
přechod na updater-ng v některé z předchozích verzí migrátoru a nekončili jste ho.
Doporučujeme smazat soubor /etc/updater/auto.lua
a spustit
updater-migrate.sh
.
Automatická migrace prohlídne seznam nainstalovaných balíčků a pokud je nějaký
balíček navíc (není požadován jako závislost jiného balíčku, nebo jako součást
systému), pak se přidá do souboru /etc/updater/auto.lua
. Je možné, že na
routeru máte nainstalovaný software který ve skutečnosti nepoužíváte, doporučuje
se tak po provedení migrace projít obsah /etc/updater/auto.lua
a odstranit
řádky instalující balíčky které nepotřebujete. Jakékoliv balíčky uvedené v tomto seznamu nejsou
důležité pro běh systému.
Po provedení změn v konfiguraci je aplikuj spuštěním příkazu updater.sh
.
/etc/updater/auto.lua
obsahuje nadbytečný software i v případě, že
aktualizujete z továrního nastavení.