El paquete no se instala: descarga, arquitectura, dependencias, LuCI y postinst
Resultado
Sección titulada «Resultado»- Distingue si el paquete falta en el feed o si existe pero falla al instalarse;
- Identifica si el fallo es de arquitectura, ABI, dependencias, interfaz LuCI o postinst;
- Entiende por qué el programa principal se instaló pero LuCI no tiene menú;
- Recupera el sistema sin reinstalar el firmware.
Capa 0: registra el entorno
Sección titulada «Capa 0: registra el entorno»ubus call system boardcat /etc/openwrt_releasecat /etc/apk/arch 2>/dev/nullcommand -v apkcommand -v opkgcat /etc/apk/repositories.d/distfeeds.list 2>/dev/null25.12 usa apk; 24.10 usa opkg. No renombres .ipk a .apk ni fuerces otra arquitectura.
EsperadoSabes si usar apk u opkg, y la versión, el target y la arquitectura.
Capa 1: descarga y feeds
Sección titulada «Capa 1: descarga y feeds»apk updateapk search <package>apk info -e <package>Si apk update falla, revisa primero 404, firma, hora y certificados. Si search no encuentra nada, puede que el feed esté desactualizado, que el nombre sea incorrecto o que el paquete no esté en esta versión o arquitectura.
Esperadoapk search o apk update lo encuentra, o sabes que no está.
- 25.12:
.apk; 24.10:.ipk; - Prefiere los feeds a las «repacks» de nubes de archivos o foros;
- Para archivos locales, verifica SHA-256 o la firma;
- No uses
--allow-untrustedde forma rutinaria; omite las comprobaciones de confianza y no demuestra compatibilidad.
EsperadoLa fuente es fiable y el formato y la arquitectura coinciden.
Capa 2: arquitectura y ABI
Sección titulada «Capa 2: arquitectura y ABI»cat /etc/apk/archapk info -a <package> | grep -E "arch|depends|provides" | headx86_64,aarch64_cortex-a53, etc. no son intercambiables;- los módulos del kernel (kmod) deben coincidir con la versión y la ABI del kernel;
- los paquetes solo de scripts pueden ser
any/noarchy no pueden demostrar el rechazo por arquitectura.
Este laboratorio descargó un
sqm-scriptsaarch64, pero essqm-scripts-any(sin binario específico de arquitectura), y--allow-untrustedlocal aun así lo reemplazó. Eso no demuestra que las comprobaciones de arquitectura pasaran. Una prueba real de rechazo necesita un paquete con ELF; esta página no lo marca como verificado.
EsperadoLa arquitectura del paquete coincide con /etc/apk/arch; los kmods también coinciden con el kernel.
Capa 3: dependencias
Sección titulada «Capa 3: dependencias»apk add <package> 2>&1 | tail -20apk info -R <package> 2>/dev/null | head -20apk info -e <dependency>Casos comunes:
- el programa principal está instalado, pero falta
luci-app-*; kmod-*no coincide con el kernel;- las dependencias están en otro feed o versión;
- se mezclan feeds oficiales, de ImmortalWrt o de iStoreOS.
EsperadoLas dependencias que faltan tienen nombres de paquete concretos.
Capa 4: menú de LuCI
Sección titulada «Capa 4: menú de LuCI»apk info -L <luci-app-name> | head -20ls -l /usr/share/luci/menu.d/ 2>/dev/null | grep <name>Este laboratorio:
- solo
sqm-scripts: instalado, pero sin menú en LuCI; - al añadir
luci-app-sqm: aparecieron/usr/share/luci/menu.d/luci-app-sqm.jsony/www/luci-static/resources/view/network/sqm.js; - al eliminar
luci-app-sqm: el archivo de menú desapareció; al reinstalar se restauró.
Si el menú sigue sin aparecer: borra la caché del navegador, cierra y vuelve a iniciar sesión, revisa luci-base, el paquete de idioma y rpcd; no reinstales el firmware primero.
EsperadoTras instalar luci-app aparecen el menú y los archivos estáticos.
Demo grabada (laboratorio 017)
Sección titulada «Demo grabada (laboratorio 017)»Capa 5: postinst y scripts de configuración
Sección titulada «Capa 5: postinst y scripts de configuración»logread | tail -50apk info -L <package> | head -20ls /etc/uci-defaults/ 2>/dev/null | tail- Un postinst fallido no revierte necesariamente el paquete;
- revisa
/etc/uci-defaults,/etc/init.d/<service>,/etc/config/<service>; - no fuerces la reinstalación repetidamente solo para volver a ejecutar postinst; lee primero el registro y los scripts.
EsperadoSabes si postinst falló y qué cambió.
Capa 6: recuperación
Sección titulada «Capa 6: recuperación»apk del <package># if feeds were changed:cp /etc/apk/repositories.d/distfeeds.list.bak.YYYY-MM-DD /etc/apk/repositories.d/distfeeds.listapk updaterebootSi el paquete rompe la administración, detén primero el servicio o restaura las copias de seguridad de la configuración; reinstalar el firmware es el último recurso.
EsperadoVuelves al estado anterior, o al menos puedes seguir depurando.
Fallos comunes
Sección titulada «Fallos comunes»| Síntoma | Causa más probable | Qué revisar primero |
|---|---|---|
apk update 404 |
versión, target, arquitectura o ruta del mirror incorrectos | archivos de feeds + curl -I |
| Paquete no encontrado | nombre, feed o versión incorrectos | apk search |
| Se descargó pero no se instala | arquitectura, dependencia o firma | apk info -a, salida de la instalación |
| Instalado pero sin menú | solo el programa principal, sin luci-app-* |
apk info -L |
| El menú existe pero no abre | LuCI, idioma, rpcd o caché | consola del navegador, logread |
| Error de postinst | script, permisos, dependencia o configuración | logread, /etc/uci-defaults |
| Sin internet tras instalar | el servicio cambió DNS, cortafuegos o interfaz | detén el servicio, restaura las copias de seguridad |
Ejecución de laboratorio E2 (2026-10-20)
Sección titulada «Ejecución de laboratorio E2 (2026-10-20)»- Entorno: OpenWrt 25.12.6 x86 VM 200; x86_64; apk; mirror TUNA por velocidad (la página no lo requiere).
sqm-scripts 1.7.2-r1: instalado; sin menú ni controlador en LuCI.luci-app-sqm: instalado; apareció/usr/share/luci/menu.d/luci-app-sqm.json; existe/www/luci-static/resources/view/network/sqm.js.apk del luci-app-sqm: el archivo de menú desapareció; la reinstalación lo restauró.sqm-scriptsaarch64: el paquete essqm-scripts-any(noarch);--allow-untrustedlocal lo aceptó; no es una prueba de rechazo por arquitectura.- No reproducido de forma destructiva: fallo de postinst, desajuste de ABI de kmod, rechazo real por arquitectura específica.
Estado E2 y fuentes
Sección titulada «Estado E2 y fuentes»- Esto es E2 parcial: se probaron la instalación, las dependencias, el menú de LuCI y la eliminación y reinstalación; no se reprodujeron por completo el rechazo por arquitectura ni el fallo de postinst.
- Receta:
tests/recipes/plugin-install-25.12.md. - No lo conviertas en «todos los paquetes se instalan»; verifica versión, target y arquitectura para cada paquete.
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