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.
Resultado
Sección titulada «Resultado»- Saber si el firmware usa
apkuopkg, 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 upgradeno 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»ubus call system boardcat /etc/openwrt_releaseuname -mcat /etc/apk/arch 2>/dev/nullopkg print-architecture 2>/dev/nullCampos 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.
OpenWrt 25.12 (apk):
cat /etc/apk/repositories.d/distfeeds.listOpenWrt 24.10 (opkg):
cat /etc/opkg/distfeeds.confcat /etc/opkg/customfeeds.confHaz una copia de seguridad antes de editar:
cp /etc/apk/repositories.d/distfeeds.list /etc/apk/repositories.d/distfeeds.list.bak.$(date +%F) 2>/dev/null || truecp /etc/opkg/distfeeds.conf /etc/opkg/distfeeds.conf.bak.$(date +%F) 2>/dev/null || trueEsperadoSabes a dónde apunta cada feed y si es apk u opkg.
La estructura de apk en 25.12
Sección titulada «La estructura de apk en 25.12»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:
apk updateapk search <name>apk add <name>apk info -e <name>No uses opkg y no renombres un .ipk de 24.10 a .apk.
La estructura de opkg en 24.10
Sección titulada «La estructura de opkg en 24.10»OpenWrt 24.10 usa opkg; los índices son Packages.gz y los paquetes son .ipk:
opkg updateopkg 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.
Reescribir a un mirror de China
Sección titulada «Reescribir a un mirror de China»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.adbNo te detengas en .../openwrt/ ni elimines releases/25.12.6/targets/x86/64/...; una ruta incompleta devuelve 404.
curl -I https://mirrors.tuna.tsinghua.edu.cn/openwrt/releases/25.12.6/targets/x86/64/packages/packages.adbSustituye 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.
apk update# oropkg updateUsa 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.
Fallos comunes
Sección titulada «Fallos comunes»- Versión equivocada (25.12.6 frente a 24.10.8);
- Target equivocado (
x86/64, no un directoriox86_64); - Arquitectura equivocada (
x86_64,aarch64); - El mirror no ha sincronizado esa ruta;
- Se confundieron los directorios
packagesytargets.
Fallos de firma/verificación
Sección titulada «Fallos de firma/verificación»- Í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.
Incompatibilidad de dependencias/ABI
Sección titulada «Incompatibilidad de dependencias/ABI»- 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.
Command not found
Sección titulada «Command not found»- 25.12 no tiene
opkg; 24.10 no tieneapk; - 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.
Recuperación
Sección titulada «Recuperación»# apkcp /etc/apk/repositories.d/distfeeds.list.bak.YYYY-MM-DD /etc/apk/repositories.d/distfeeds.listapk update
# opkgcp /etc/opkg/distfeeds.conf.bak.YYYY-MM-DD /etc/opkg/distfeeds.confopkg updateSi 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.
Prueba E2 en laboratorio (2026-10-20)
Sección titulada «Prueba E2 en laboratorio (2026-10-20)»- Entorno: VM 200 x86 con OpenWrt 25.12.6;
apk; feed oficial y mirror TUNA. apk updateoficial:OK: 11220 distinct packages available;apk search -x sqm-scriptsencontrósqm-scripts-1.7.2-r1.- Cambio a TUNA:
apk updatetambién 11220;apk add sqm-scriptsinstaló1.7.2-r1. - Restaurar el feed oficial:
apk updatefuncionó; el feed final vuelve a estar endownloads.openwrt.org. - No probado:
opkgde 24.10, errores de firma, ABI mezclada/incompatible, índice corrupto del mirror. - Receta:
tests/recipes/package-sources.md.
Estado E2 y fuentes
Sección titulada «Estado E2 y fuentes»- Esto es E2 parcial: se probó la ruta
apkde 25.12 con feed oficial/TUNA/instalación/restauración;opkgy las ramas de feed defectuoso siguen siendo documentación. - Las rutas de los mirrors cambian con las versiones; vuelve a ejecutar
update/searchen 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
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