Introdução
Ao trabalhar com software complexo no Linux, especialmente ferramentas clonadas de repositórios como o GitHub, você frequentemente encontrará erros de "dependência ausente" (missing dependency). Esses erros ocorrem quando o software requer que outros programas ou bibliotecas sejam instalados, mas eles não estão presentes no seu sistema.
Neste laboratório, você aprenderá uma habilidade fundamental de solução de problemas: como identificar e instalar dependências ausentes para um script. Usaremos o Fluxion, uma ferramenta popular de auditoria de segurança, como nosso exemplo. Você executará o instalador dele, observará quais pacotes estão faltando, os instalará manualmente usando o gerenciador de pacotes apt-get e, finalmente, iniciará o aplicativo com sucesso.
Executar o Script Instalador 'fluxion.sh -i'
Nesta etapa, você começará executando o script instalador do Fluxion. A maioria dos scripts bem projetados inclui um instalador ou um verificador de dependências para ajudar os usuários a configurar o ambiente necessário. O script Fluxion usa o sinalizador -i para ser executado no modo "instalador", que verifica especificamente os pacotes necessários.
Primeiro, navegue até o diretório fluxion que foi pré-clonado para você no diretório ~/project.
cd ~/project/fluxion
Agora, execute o script instalador. Como é um script de shell no diretório atual, você precisará prefixá-lo com ./.
./fluxion.sh -i
Você verá uma saída que verifica várias ferramentas. Preste muita atenção às linhas que indicam que um pacote está faltando.
Saída esperada (pode variar ligeiramente):
* 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 laboratório, não prossiga com a instalação automática. Pressione n e depois Enter para sair do prompt do instalador do script. Instalaremos os pacotes manualmente nas próximas etapas.
Observar a Saída do Instalador para Pacotes Ausentes
Nesta etapa, sua tarefa é ler atentamente a saída do comando anterior. Esta é a parte mais crítica da solução de problemas: entender as informações que o programa fornece.
Como você viu na saída de ./fluxion.sh -i, o script fornece uma lista clara e codificada por cores de suas dependências e seus status.
[!] Some packages are not installed.
[!] The following packages are required:
-> lighttpd..................................[ Not installed ]
-> hostapd...................................[ Not installed ]
-> mdk4......................................[ Not installed ]
As linhas marcadas com [ Not installed ] são aquelas que precisamos corrigir. O script nos diz explicitamente que lighttpd, hostapd e mdk4 são necessários, mas não foram encontrados no sistema. Para este laboratório, focaremos na instalação de mdk4 como um exemplo do processo.
Não há comandos para executar nesta etapa. O objetivo é simplesmente praticar a leitura e interpretação de mensagens de diagnóstico.
Instalar Manualmente um Pacote Ausente usando 'apt-get install'
Agora que você identificou um pacote ausente, mdk4, você usará o gerenciador de pacotes padrão do Debian/Ubuntu, apt-get, para instalá-lo. Esta é uma ferramenta comum de linha de comando para gerenciar software.
Para instalar um pacote, você usa o comando sudo apt-get install <nome-do-pacote>. Você precisa de sudo porque a instalação de software modifica o sistema e requer privilégios administrativos. Também adicionaremos o sinalizador -y, que responde automaticamente "sim" a quaisquer prompts de confirmação, tornando a instalação não interativa.
Execute o seguinte comando em seu terminal para instalar mdk4:
sudo apt-get install -y mdk4
O sistema agora buscará e instalará o pacote mdk4 e quaisquer de suas próprias dependências.
Saída 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) ...
Você agora resolveu com sucesso uma das dependências ausentes.
Reexecutar o Instalador para Verificar se Todas as Dependências Foram Atendidas
Nesta etapa, você reexecutará o script instalador para confirmar que sua correção foi bem-sucedida. É sempre uma boa prática verificar suas alterações. Embora tenhamos instalado apenas mdk4, o instalador do Fluxion detectará e instalará automaticamente os outros pacotes necessários ausentes (lighttpd e hostapd) porque o executamos novamente.
Certifique-se de que você ainda está no diretório ~/project/fluxion. Execute o comando do instalador novamente:
./fluxion.sh -i
Desta vez, o script verificará as dependências novamente. Ele encontrará que mdk4 está agora instalado. Ele ainda solicitará que você instale os pacotes ausentes restantes. Desta vez, pressione Y e depois Enter para permitir que o script instale automaticamente o restante.
Saída 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.
Após a conclusão da instalação, o script confirmará que todas as dependências foram atendidas. Isso confirma que seu processo de solução de problemas foi bem-sucedido.
Executar o Script Principal do Fluxion com Sucesso
Com todas as dependências corretamente instaladas, você está pronto para iniciar o aplicativo principal do Fluxion. Ao executar o script sem nenhum sinalizador, ele inicia o programa principal em vez do instalador.
Execute o script sem o sinalizador -i:
./fluxion.sh
Se todas as dependências foram resolvidas corretamente, você não verá mais nenhuma mensagem de erro. Em vez disso, você será recebido pelo menu principal de seleção de idioma do Fluxion.
Saída 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 menu confirma que você solucionou e resolveu com sucesso todos os problemas de dependência ausentes. Você pode agora sair do script pressionando Ctrl+C.
Resumo
Neste laboratório, você praticou uma habilidade crítica e comum para qualquer usuário Linux: a solução de problemas de dependências de software ausentes.
Você com sucesso:
- Executou o instalador de um script para verificar os pacotes necessários.
- Interpretou a saída para identificar quais dependências estavam faltando.
- Usou o comando
sudo apt-get installpara instalar manualmente um pacote ausente. - Reexecutou o instalador para verificar a correção e instalar as dependências restantes.
- Iniciou o aplicativo principal com sucesso após resolver todos os problemas.
Este processo de "ler o erro, identificar o problema, aplicar uma correção e verificar" é um fluxo de trabalho fundamental para resolver uma ampla gama de problemas técnicos no Linux e além.
