Introducción
Al trabajar con software complejo en Linux, especialmente herramientas clonadas de repositorios como GitHub, a menudo te encontrarás con errores de "dependencia faltante". Estos errores ocurren cuando el software requiere que otros programas o bibliotecas estén instalados, pero no están presentes en tu sistema.
En este laboratorio, aprenderás una habilidad fundamental de resolución de problemas: cómo identificar e instalar las dependencias faltantes para un script. Utilizaremos Fluxion, una popular herramienta de auditoría de seguridad, como nuestro ejemplo. Ejecutarás su instalador, observarás qué paquetes faltan, los instalarás manualmente usando el gestor de paquetes apt-get, y finalmente, lanzarás la aplicación con éxito.
Ejecutar el script instalador 'fluxion.sh -i'
En este paso, comenzarás ejecutando el script instalador de Fluxion. La mayoría de los scripts bien diseñados incluyen un instalador o un verificador de dependencias para ayudar a los usuarios a configurar el entorno requerido. El script de Fluxion utiliza la bandera -i para ejecutarse en modo "instalador", que verifica específicamente los paquetes requeridos.
Primero, navega al directorio fluxion que ha sido pre-clonado para ti en el directorio ~/project.
cd ~/project/fluxion
Ahora, ejecuta el script instalador. Dado que es un script de shell en el directorio actual, deberás prefijarlo con ./.
./fluxion.sh -i
Verás una salida que verifica varias herramientas. Presta mucha atención a las líneas que indican que falta un paquete.
Salida esperada (puede variar ligeramente):
* Installer
[*] Checking for dependencies...
[!] Some packages are not installed.
[!] The following packages are required:
-> lighttpd..................................[ Not installed ]
-> hostapd...................................[ Not installed ]
-> mdk4......................................[ Not installed ]
-> aircrack-ng...............................[ OK ]
-> xterm.....................................[ OK ]
...
[!] The following packages are recommended:
-> pyrit.....................................[ Not installed ]
-> bully.....................................[ Not installed ]
[?] Do you want to install the required packages? (Y/n)
Para este laboratorio, no procedas con la instalación automática. Presiona n y luego Enter para salir del aviso del instalador del script. Instalaremos los paquetes manualmente en los siguientes pasos.
Observar la salida del instalador para paquetes faltantes
En este paso, tu tarea es leer cuidadosamente la salida del comando anterior. Esta es la parte más crítica de la resolución de problemas: comprender la información que el programa te proporciona.
Como viste en la salida de ./fluxion.sh -i, el script proporciona una lista clara y codificada por colores de sus dependencias y su estado.
[!] Some packages are not installed.
[!] The following packages are required:
-> lighttpd..................................[ Not installed ]
-> hostapd...................................[ Not installed ]
-> mdk4......................................[ Not installed ]
Las líneas marcadas con [ Not installed ] son las que necesitamos solucionar. El script nos dice explícitamente que lighttpd, hostapd y mdk4 son requeridos pero no se encuentran en el sistema. Para este laboratorio, nos centraremos en instalar mdk4 como ejemplo del proceso.
No hay comandos que ejecutar en este paso. El objetivo es simplemente practicar la lectura e interpretación de mensajes de diagnóstico.
Instalar manualmente un paquete faltante usando 'apt-get install'
Ahora que has identificado un paquete faltante, mdk4, usarás el gestor de paquetes estándar de Debian/Ubuntu, apt-get, para instalarlo. Esta es una herramienta común de línea de comandos para gestionar software.
Para instalar un paquete, usas el comando sudo apt-get install <nombre-del-paquete>. Necesitas sudo porque instalar software modifica el sistema y requiere privilegios administrativos. También añadiremos la bandera -y, que responde automáticamente "sí" a cualquier solicitud de confirmación, haciendo la instalación no interactiva.
Ejecuta el siguiente comando en tu terminal para instalar mdk4:
sudo apt-get install -y mdk4
El sistema ahora obtendrá e instalará el paquete mdk4 y cualquiera de sus propias dependencias.
Salida esperada (truncada):
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following NEW packages will be installed:
mdk4
0 upgraded, 1 newly installed, 0 to remove and XX not upgraded.
Need to get 63.4 kB of archives.
After this operation, 205 kB of additional disk space will be used.
Get:1 http://archive.ubuntu.com/ubuntu jammy/universe amd64 mdk4 amd64 4.2-1 [63.4 kB]
Fetched 63.4 kB in 1s (118 kB/s)
Selecting previously unselected package mdk4.
(Reading database ... 123456 files and directories currently installed.)
Preparing to unpack .../mdk4_4.2-1_amd64.deb ...
Unpacking mdk4 (4.2-1) ...
Setting up mdk4 (4.2-1) ...
Processing triggers for man-db (2.10.2-1) ...
Ahora has resuelto con éxito una de las dependencias faltantes.
Volver a ejecutar el instalador para verificar que todas las dependencias se cumplen
En este paso, volverás a ejecutar el script del instalador para confirmar que tu corrección fue exitosa. Siempre es una buena práctica verificar tus cambios. Aunque solo instalamos mdk4, el instalador de Fluxion ahora detectará e instalará automáticamente los otros paquetes requeridos faltantes (lighttpd y hostapd) porque lo estamos ejecutando de nuevo.
Asegúrate de que sigues en el directorio ~/project/fluxion. Ejecuta el comando del instalador de nuevo:
./fluxion.sh -i
Esta vez, el script verificará las dependencias nuevamente. Encontrará que mdk4 ya está instalado. Aún te pedirá que instales los paquetes faltantes restantes. Esta vez, presiona Y y luego Enter para permitir que el script instale automáticamente el resto.
Salida esperada:
* Installer
[*] Checking for dependencies...
[!] Some packages are not installed.
[!] The following packages are required:
-> lighttpd..................................[ Not installed ]
-> hostapd...................................[ Not installed ]
-> mdk4......................................[ OK ]
...
[?] Do you want to install the required packages? (Y/n) Y
[*] Installing required packages...
... (apt-get installation output) ...
[*] All dependencies are installed.
Después de que la instalación se complete, el script confirmará que todas las dependencias se cumplen. Esto confirma que tu proceso de resolución de problemas fue exitoso.
Lanzar el script principal de Fluxion con éxito
Con todas las dependencias instaladas correctamente, ahora estás listo para lanzar la aplicación principal de Fluxion. Cuando ejecutas el script sin ninguna bandera, inicia el programa principal en lugar del instalador.
Ejecuta el script sin la bandera -i:
./fluxion.sh
Si todas las dependencias se resolvieron correctamente, ya no verás ningún mensaje de error. En su lugar, serás recibido por el menú principal de selección de idioma de Fluxion.
Salida esperada:
...
╔══════════════════════════════════════════════════════════════════════════════╗
║ Choose your language. / Elige tu idioma. ║
╠══════════════════════════════════════════════════════════════════════════════╣
║ 1. English (en) 5. Português (pt) 9. Türkçe (tr) ║
║ 2. Español (es) 6. Français (fr) 10. Ελληνικά (gr) ║
║ 3. Italiano (it) 7. Deutsch (de) 11. Polski (pl) ║
║ 4. Русский (ru) 8. Magyar (hu) 12. Nederlands(nl) ║
╚══════════════════════════════════════════════════════════════════════════════╝
> Select an option:
Ver este menú confirma que has solucionado y resuelto con éxito todos los problemas de dependencias faltantes. Ahora puedes salir del script presionando Ctrl+C.
Resumen
En este laboratorio, has practicado una habilidad crítica y común para cualquier usuario de Linux: la resolución de problemas de dependencias de software faltantes.
Has logrado con éxito:
- Ejecutar el instalador de un script para verificar los paquetes requeridos.
- Interpretar la salida para identificar qué dependencias faltaban.
- Usar el comando
sudo apt-get installpara instalar manualmente un paquete faltante. - Volver a ejecutar el instalador para verificar la corrección e instalar las dependencias restantes.
- Lanzar la aplicación principal con éxito después de resolver todos los problemas.
Este proceso de "leer el error, identificar el problema, aplicar una solución y verificar" es un flujo de trabajo fundamental para resolver una amplia gama de problemas técnicos en Linux y más allá.
