Zum Inhalt springen

Paket-Feeds und China-Mirror: apk und opkg getrennt halten

Zuerst: Der Unterschied zwischen apk und opkg ergibt sich aus dem Firmware-Release, nicht aus der Frage „welcher Mirror ist schneller“. 25.12 verwendet apk; 24.10 verwendet opkg. Paketformat, Feed-Pfade und Verifikation unterscheiden sich und sind nicht austauschbar.

  • Sie wissen, ob die Firmware apk oder opkg verwendet und wo die Feed-Dateien liegen.
  • Sie stimmen Release, Target, Architektur und den kmods-Kernel-Hash ab.
  • Sie wissen, welchen Teil der URL ein China-Mirror ersetzt und welche Pfade exakt bleiben müssen.
  • Sie verstehen, warum „nach dem Mirror-Wechsel Pakete nicht mehr installiert werden“, und wie Sie das beheben.
  • Sie wissen, warum apk upgrade/opkg upgrade kein Firmware-Upgrade ist.
Router-ShellVersion, Target und Architektur auslesen
Terminal-Fenster
ubus call system board
cat /etc/openwrt_release
uname -m
cat /etc/apk/arch 2>/dev/null
opkg print-architecture 2>/dev/null

Wichtige Felder: release.version, release.target, DISTRIB_ARCH, release.revision. Sie müssen zum Mirror-Pfad passen.

ErwartetSie können die vollständige Kombination aus Release/Target/Architektur angeben.

Router-ShellDie aktuellen Feed-Dateien untersuchen

OpenWrt 25.12 (apk):

Terminal-Fenster
cat /etc/apk/repositories.d/distfeeds.list

OpenWrt 24.10 (opkg):

Terminal-Fenster
cat /etc/opkg/distfeeds.conf
cat /etc/opkg/customfeeds.conf

Sichern Sie vor dem Bearbeiten:

Terminal-Fenster
cp /etc/apk/repositories.d/distfeeds.list /etc/apk/repositories.d/distfeeds.list.bak.$(date +%F) 2>/dev/null || true
cp /etc/opkg/distfeeds.conf /etc/opkg/distfeeds.conf.bak.$(date +%F) 2>/dev/null || true

ErwartetSie wissen, wohin jeder Feed zeigt und ob er apk oder opkg ist.

OpenWrt 25.12 verwendet apk; Indizes sind .adb, Pakete sind .apk. Typische Feeds:

  • targets/<target>/packages/packages.adb: Target-spezifische Pakete;
  • packages/<arch>/base/packages.adb: Basis;
  • packages/<arch>/luci/packages.adb: LuCI;
  • packages/<arch>/packages/packages.adb: allgemeine Pakete;
  • packages/<arch>/routing|telephony|video/packages.adb: Kategorie-Feeds;
  • targets/<target>/kmods/<kernel-hash>/packages.adb: Kernelmodule; der Hash muss zum laufenden Kernel passen.

Befehle:

Terminal-Fenster
apk update
apk search <name>
apk add <name>
apk info -e <name>

Verwenden Sie nicht opkg und benennen Sie keine .ipk von 24.10 in .apk um.

OpenWrt 24.10 verwendet opkg; Indizes sind Packages.gz, Pakete sind .ipk:

Terminal-Fenster
opkg update
opkg list | grep <name>
opkg install <name>
opkg list-installed | grep <name>

Verwenden Sie nicht apk und übergeben Sie opkg keine .apk von 25.12.

Für den TUNA-Mirror lautet die Wurzel:

https://mirrors.tuna.tsinghua.edu.cn/openwrt/

Ersetzen Sie nur https://downloads.openwrt.org durch diese Wurzel und behalten Sie den gesamten Pfad:

https://downloads.openwrt.org/releases/25.12.6/targets/x86/64/packages/packages.adb
→ https://mirrors.tuna.tsinghua.edu.cn/openwrt/releases/25.12.6/targets/x86/64/packages/packages.adb

Hören Sie nicht bei .../openwrt/ auf und lassen Sie releases/25.12.6/targets/x86/64/... nicht weg; ein unvollständiger Pfad liefert 404.

Router-ShellDen Mirror-Pfad vor dem Bearbeiten prüfen
Terminal-Fenster
curl -I https://mirrors.tuna.tsinghua.edu.cn/openwrt/releases/25.12.6/targets/x86/64/packages/packages.adb

Ersetzen Sie die URL durch Ihr Release/Target; prüfen Sie bei kmods auch den Kernel-Hash. Fehlt dem Mirror der Pfad, erzwingen Sie ihn nicht.

Erwartetcurl liefert 200 und der Pfad passt zum aktuellen Release/Target.

Router-ShellNur Indizes aktualisieren, das System nicht upgraden
Terminal-Fenster
apk update
# or
opkg update

Prüfen Sie mit apk search/opkg list, dass der Feed lesbar ist, und installieren Sie dann nur, was Sie brauchen. Behandeln Sie apk upgrade/opkg upgrade nicht als Firmware-Upgrade; verwenden Sie für Firmware sysupgrade/ASU/owut.

Erwartetapk/opkg update gelingt, ohne Pakete massenhaft zu upgraden.

  • Falsches Release (25.12.6 vs. 24.10.8);
  • Falsches Target (x86/64, kein Verzeichnis x86_64);
  • Falsche Architektur (x86_64, aarch64);
  • Der Mirror hat diesen Pfad noch nicht synchronisiert;
  • Die Verzeichnisse packages und targets wurden verwechselt.
  • Beschädigter Index oder ein anderes Release;
  • Falsche Systemzeit/Zertifikate;
  • Ein anderer Feed wurde beigemischt;
  • Verlassen Sie sich nicht auf --allow-untrusted; beheben Sie stattdessen Feed/Verifikation.
  • Der kmods-Kernel-Hash passt nicht;
  • Das Paket wurde für ein anderes Target/eine andere Architektur gebaut;
  • Offizielle und ImmortalWrt-/iStoreOS-Feeds wurden gemischt;
  • Sie brauchen dieselbe Quelle, dasselbe Release und dieselbe Architektur oder einen Neubau.
  • 25.12 hat kein opkg; 24.10 hat kein apk;
  • Installieren Sie keinen Paketmanager, nur um einen Befehl auszuführen; ermitteln Sie zuerst Firmware/Quelle.
  • Es wurde nur das Kernpaket installiert; das Paket luci-app-* fehlt;
  • Sprachpaket fehlt;
  • Browser-Cache/Neuladen;
  • Die Paketversion passt nicht zu LuCI.
Terminal-Fenster
# apk
cp /etc/apk/repositories.d/distfeeds.list.bak.YYYY-MM-DD /etc/apk/repositories.d/distfeeds.list
apk update
# opkg
cp /etc/opkg/distfeeds.conf.bak.YYYY-MM-DD /etc/opkg/distfeeds.conf
opkg update

Funktionieren Updates nach einem Mirror-Wechsel nicht mehr, stellen Sie zuerst den offiziellen Feed wieder her, prüfen Sie DNS/Zeit/Zertifikate und versuchen Sie dann den Mirror erneut. Springen Sie nicht zwischen vielen Mirrors.

  • Umgebung: OpenWrt 25.12.6 x86 VM 200; apk; offizieller Feed und TUNA-Mirror.
  • Offizielles apk update: OK: 11220 distinct packages available; apk search -x sqm-scripts fand sqm-scripts-1.7.2-r1.
  • Wechsel zu TUNA: apk update ebenfalls 11220; apk add sqm-scripts installierte 1.7.2-r1.
  • Offiziellen Feed wiederhergestellt: apk update funktionierte; der endgültige Feed zeigt wieder auf downloads.openwrt.org.
  • Nicht getestet: 24.10 opkg, Signaturfehler, gemischte Feeds/ABI-Konflikt, beschädigter Mirror-Index.
  • Rezept: tests/recipes/package-sources.md.
  • Dies ist E2 partiell: Der 25.12-apk-Pfad mit offiziellem Feed/TUNA/Installation/Wiederherstellung wurde getestet; opkg und die Zweige mit fehlerhaften Feeds bleiben Dokumentation.
  • Mirror-Pfade ändern sich mit Releases; führen Sie vor der Veröffentlichung update/search für das Ziel-Release/-Target/-Arch erneut aus.
  • Mischen Sie keine offiziellen, ImmortalWrt- oder iStoreOS-Feeds; ABI, Kernel und Signaturen können alle nicht passen.

Quellen

Router.Homes

Unabhängige OpenWrt-Notizen. Jede Seite nennt Firmware, Gerät, Paketmanager und den Rückweg.

Symbole: Solar by 480 Design, CC BY 4.0