Ir al contenido

El paquete no se instala: descarga, arquitectura, dependencias, LuCI y postinst

  • 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.
Shell del routerRegistra firmware, arquitectura, gestor de paquetes y feeds
Ventana de terminal
ubus call system board
cat /etc/openwrt_release
cat /etc/apk/arch 2>/dev/null
command -v apk
command -v opkg
cat /etc/apk/repositories.d/distfeeds.list 2>/dev/null

25.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.

Shell del routerConfirma que el paquete existe en el feed
Ventana de terminal
apk update
apk 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á.

Shell del routerComprueba el formato y el checksum antes de instalar
  • 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-untrusted de forma rutinaria; omite las comprobaciones de confianza y no demuestra compatibilidad.

EsperadoLa fuente es fiable y el formato y la arquitectura coinciden.

Shell del routerVerifica la arquitectura del paquete, no el nombre del archivo
Ventana de terminal
cat /etc/apk/arch
apk info -a <package> | grep -E "arch|depends|provides" | head
  • x86_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/noarch y no pueden demostrar el rechazo por arquitectura.

Este laboratorio descargó un sqm-scripts aarch64, pero es sqm-scripts-any (sin binario específico de arquitectura), y --allow-untrusted local 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.

Shell del routerLee el árbol de dependencias y la salida de la instalación
Ventana de terminal
apk add <package> 2>&1 | tail -20
apk info -R <package> 2>/dev/null | head -20
apk 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.

Shell del routerPrograma principal ≠ interfaz LuCI
Ventana de terminal
apk info -L <luci-app-name> | head -20
ls -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.json y /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.

Laboratorio 017: sqm-scripts → luci-app-sqmDescargar cast
Sesión real en una VM con OpenWrt 25.12.6: instalar sqm-scripts (sin menú en LuCI), añadir luci-app-sqm (aparece el archivo de menú), eliminarlo (desaparece el menú), reinstalar (restaurado). El reproductor es un complemento; los bloques de código de esta página son la referencia.

Capa 5: postinst y scripts de configuración

Sección titulada «Capa 5: postinst y scripts de configuración»
Shell del routerEl paquete se instaló pero el servicio o la configuración no
Ventana de terminal
logread | tail -50
apk info -L <package> | head -20
ls /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ó.

Shell del routerDesinstala, restaura los feeds o reinicia en lugar de reinstalar el firmware
Ventana de terminal
apk del <package>
# if feeds were changed:
cp /etc/apk/repositories.d/distfeeds.list.bak.YYYY-MM-DD /etc/apk/repositories.d/distfeeds.list
apk update
reboot

Si 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.

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
  • 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-scripts aarch64: el paquete es sqm-scripts-any (noarch); --allow-untrusted local 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.
  • 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

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