Ir al contenido

Feeds de paquetes y mirrors de China: mantén apk y opkg separados

Primero: la diferencia entre apk y opkg depende de la versión del firmware, no de “qué mirror es más rápido”. 25.12 usa apk; 24.10 usa opkg. El formato de paquete, las rutas de los feeds y la verificación son distintos y no son intercambiables.

  • Saber si el firmware usa apk u opkg, y dónde están sus archivos de feeds.
  • Hacer coincidir versión, target, arquitectura y el hash del kernel de los kmods.
  • Saber qué parte de la URL reemplaza un mirror de China y qué rutas deben mantenerse exactas.
  • Entender por qué “después de cambiar el mirror, los paquetes no se instalan” y cómo recuperarte.
  • Saber por qué apk upgrade/opkg upgrade no es una actualización de firmware.

Identifica el gestor de paquetes y los feeds

Sección titulada «Identifica el gestor de paquetes y los feeds»
Shell del routerLee la versión, el target y la arquitectura
Ventana de terminal
ubus call system board
cat /etc/openwrt_release
uname -m
cat /etc/apk/arch 2>/dev/null
opkg print-architecture 2>/dev/null

Campos clave: release.version, release.target, DISTRIB_ARCH, release.revision. Deben coincidir con la ruta del mirror.

EsperadoPuedes escribir la combinación completa de versión/target/arquitectura.

Shell del routerInspecciona los archivos de feeds actuales

OpenWrt 25.12 (apk):

Ventana de terminal
cat /etc/apk/repositories.d/distfeeds.list

OpenWrt 24.10 (opkg):

Ventana de terminal
cat /etc/opkg/distfeeds.conf
cat /etc/opkg/customfeeds.conf

Haz una copia de seguridad antes de editar:

Ventana de terminal
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

EsperadoSabes a dónde apunta cada feed y si es apk u opkg.

OpenWrt 25.12 usa apk; los índices son .adb y los paquetes son .apk. Feeds típicos:

  • targets/<target>/packages/packages.adb: paquetes específicos del target;
  • packages/<arch>/base/packages.adb: base;
  • packages/<arch>/luci/packages.adb: LuCI;
  • packages/<arch>/packages/packages.adb: paquetes generales;
  • packages/<arch>/routing|telephony|video/packages.adb: feeds por categoría;
  • targets/<target>/kmods/<kernel-hash>/packages.adb: módulos del kernel; el hash debe coincidir con el kernel en ejecución.

Comandos:

Ventana de terminal
apk update
apk search <name>
apk add <name>
apk info -e <name>

No uses opkg y no renombres un .ipk de 24.10 a .apk.

OpenWrt 24.10 usa opkg; los índices son Packages.gz y los paquetes son .ipk:

Ventana de terminal
opkg update
opkg list | grep <name>
opkg install <name>
opkg list-installed | grep <name>

No uses apk y no le des un .apk de 25.12 a opkg.

Para el mirror TUNA, la raíz es:

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

Reemplaza solo https://downloads.openwrt.org por esa raíz y conserva toda la ruta:

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

No te detengas en .../openwrt/ ni elimines releases/25.12.6/targets/x86/64/...; una ruta incompleta devuelve 404.

Shell del routerVerifica la ruta del mirror antes de editar
Ventana de terminal
curl -I https://mirrors.tuna.tsinghua.edu.cn/openwrt/releases/25.12.6/targets/x86/64/packages/packages.adb

Sustituye la URL por tu versión/target; para kmods, verifica también el hash del kernel. Si el mirror no tiene la ruta, no lo fuerces.

Esperadocurl devuelve 200 y la ruta coincide con la versión/target actuales.

Shell del routerActualiza solo los índices, no actualices el sistema
Ventana de terminal
apk update
# or
opkg update

Usa apk search/opkg list para confirmar que el feed es legible y después instala solo lo que necesites. No trates apk upgrade/opkg upgrade como una actualización de firmware; usa sysupgrade/ASU/owut para el firmware.

Esperadoapk/opkg update tiene éxito sin actualizar paquetes en bloque.

  • Versión equivocada (25.12.6 frente a 24.10.8);
  • Target equivocado (x86/64, no un directorio x86_64);
  • Arquitectura equivocada (x86_64, aarch64);
  • El mirror no ha sincronizado esa ruta;
  • Se confundieron los directorios packages y targets.
  • Índice corrupto o de otra versión;
  • Hora o certificados del sistema incorrectos;
  • Se mezcló otro feed;
  • No dependas de --allow-untrusted; corrige el feed/la verificación.
  • El hash del kernel de los kmods no coincide;
  • Paquete compilado para otro target/arquitectura;
  • Se mezclaron feeds oficiales y de ImmortalWrt/iStoreOS;
  • Necesitas el mismo origen, versión y arquitectura, o recompilar.
  • 25.12 no tiene opkg; 24.10 no tiene apk;
  • No instales un gestor de paquetes solo para ejecutar un comando; identifica primero el firmware/origen.

El paquete está instalado pero LuCI no lo muestra

Sección titulada «El paquete está instalado pero LuCI no lo muestra»
  • Solo se instaló el paquete principal; falta el paquete luci-app-*;
  • Falta el paquete de idioma;
  • Caché del navegador/actualiza la página;
  • La versión del paquete no coincide con LuCI.
Ventana de terminal
# 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

Si las actualizaciones dejan de funcionar tras cambiar de mirror, restaura primero el feed oficial, verifica DNS/hora/certificados y después prueba de nuevo el mirror. No saltes entre muchos mirrors.

  • Entorno: VM 200 x86 con OpenWrt 25.12.6; apk; feed oficial y mirror TUNA.
  • apk update oficial: OK: 11220 distinct packages available; apk search -x sqm-scripts encontró sqm-scripts-1.7.2-r1.
  • Cambio a TUNA: apk update también 11220; apk add sqm-scripts instaló 1.7.2-r1.
  • Restaurar el feed oficial: apk update funcionó; el feed final vuelve a estar en downloads.openwrt.org.
  • No probado: opkg de 24.10, errores de firma, ABI mezclada/incompatible, índice corrupto del mirror.
  • Receta: tests/recipes/package-sources.md.
  • Esto es E2 parcial: se probó la ruta apk de 25.12 con feed oficial/TUNA/instalación/restauración; opkg y las ramas de feed defectuoso siguen siendo documentación.
  • Las rutas de los mirrors cambian con las versiones; vuelve a ejecutar update/search en la versión/target/arquitectura de destino antes de publicar.
  • No mezcles feeds oficiales, de ImmortalWrt o de iStoreOS; la ABI, el kernel y las firmas pueden no coincidir.

Fuentes

Router.Homes

Notas independientes sobre OpenWrt. Cada página indica el firmware, el dispositivo, el gestor de paquetes y la vía de retorno.

Iconos: Solar by 480 Design, CC BY 4.0