소개
GitHub 와 같은 저장소에서 복제한 도구를 포함하여 Linux 에서 복잡한 소프트웨어를 작업할 때 "누락된 종속성" 오류를 자주 접하게 됩니다. 이러한 오류는 소프트웨어가 설치되어야 하는 다른 프로그램이나 라이브러리를 요구하지만 시스템에 존재하지 않을 때 발생합니다.
이 실습에서는 스크립트에 필요한 누락된 종속성을 식별하고 설치하는 기본적인 문제 해결 기술을 배우게 됩니다. 예시로 인기 있는 보안 감사 도구인 Fluxion 을 사용할 것입니다. 설치 프로그램을 실행하고, 누락된 패키지를 관찰하고, apt-get 패키지 관리자를 사용하여 수동으로 설치한 다음, 최종적으로 애플리케이션을 성공적으로 실행할 것입니다.
'fluxion.sh -i' 설치 스크립트 실행
이 단계에서는 Fluxion 설치 스크립트를 실행하는 것으로 시작합니다. 대부분의 잘 설계된 스크립트에는 사용자가 필요한 환경을 설정하는 데 도움이 되는 설치 프로그램 또는 종속성 검사기가 포함되어 있습니다. Fluxion 스크립트는 "-i" 플래그를 사용하여 "설치 프로그램" 모드로 실행되며, 이는 필요한 패키지를 구체적으로 확인합니다.
먼저, ~/project 디렉터리에 미리 복제된 fluxion 디렉터리로 이동합니다.
cd ~/project/fluxion
이제 설치 스크립트를 실행합니다. 현재 디렉터리에 있는 쉘 스크립트이므로 앞에 ./를 붙여야 합니다.
./fluxion.sh -i
다양한 도구를 확인하는 출력이 표시됩니다. 패키지가 누락되었음을 나타내는 줄에 주의를 기울이십시오.
예상 출력 (약간 다를 수 있음):
* 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)
이 실습에서는 자동 설치를 진행하지 마십시오. n을 누르고 Enter를 눌러 스크립트의 설치 프로그램 프롬프트에서 종료합니다. 다음 단계에서 패키지를 수동으로 설치할 것입니다.
누락된 패키지에 대한 설치 프로그램 출력 관찰
이 단계에서는 이전 명령의 출력을 주의 깊게 읽는 것이 과제입니다. 이것이 문제 해결의 가장 중요한 부분입니다. 프로그램이 제공하는 정보를 이해하는 것입니다.
./fluxion.sh -i의 출력에서 보았듯이 스크립트는 종속성과 해당 상태에 대한 명확하고 색상으로 구분된 목록을 제공합니다.
[!] Some packages are not installed.
[!] The following packages are required:
-> lighttpd..................................[ Not installed ]
-> hostapd...................................[ Not installed ]
-> mdk4......................................[ Not installed ]
[ Not installed ]로 표시된 줄이 우리가 수정해야 할 줄입니다. 스크립트는 lighttpd, hostapd, mdk4가 필요하지만 시스템에서 찾을 수 없다고 명시적으로 알려줍니다. 이 실습에서는 프로세스의 예로 mdk4를 설치하는 데 중점을 둘 것입니다.
이 단계에서 실행할 명령은 없습니다. 목표는 진단 메시지를 읽고 해석하는 연습을 하는 것입니다.
'apt-get install'을 사용하여 누락된 패키지 수동 설치
이제 누락된 패키지인 mdk4를 식별했으므로 표준 Debian/Ubuntu 패키지 관리자인 apt-get을 사용하여 설치합니다. 이것은 소프트웨어를 관리하는 일반적인 명령줄 도구입니다.
패키지를 설치하려면 sudo apt-get install <package-name> 명령을 사용합니다. 소프트웨어 설치는 시스템을 수정하고 관리자 권한이 필요하므로 sudo가 필요합니다. 또한 확인 프롬프트에 자동으로 "예"라고 응답하여 설치를 비대화형으로 만드는 -y 플래그를 추가합니다.
mdk4를 설치하려면 터미널에서 다음 명령을 실행하십시오.
sudo apt-get install -y mdk4
시스템은 이제 mdk4 패키지와 해당 종속성을 가져와 설치합니다.
예상 출력 (일부 생략):
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) ...
이제 누락된 종속성 중 하나를 성공적으로 해결했습니다.
설치 프로그램 다시 실행하여 모든 종속성이 충족되었는지 확인
이 단계에서는 수정이 성공했는지 확인하기 위해 설치 프로그램 스크립트를 다시 실행합니다. 변경 사항을 확인하는 것은 항상 좋은 습관입니다. mdk4만 설치했지만 Fluxion 설치 프로그램을 다시 실행하면 나머지 누락된 필수 패키지 (lighttpd 및 hostapd) 를 자동으로 감지하고 설치합니다.
여전히 ~/project/fluxion 디렉토리에 있는지 확인하십시오. 설치 프로그램 명령을 다시 실행하십시오.
./fluxion.sh -i
이번에는 스크립트가 종속성을 다시 확인합니다. 이제 mdk4가 설치되었음을 알게 됩니다. 여전히 나머지 누락된 패키지를 설치하라는 메시지가 표시됩니다. 이번에는 Y를 누른 다음 Enter를 눌러 스크립트가 나머지를 자동으로 설치하도록 허용하십시오.
예상 출력:
* 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.
설치가 완료되면 스크립트에서 모든 종속성이 충족되었음을 확인합니다. 이는 문제 해결 프로세스가 성공했음을 확인합니다.
메인 Fluxion 스크립트 성공적으로 실행하기
모든 종속성이 올바르게 설치되었으므로 이제 메인 Fluxion 애플리케이션을 실행할 준비가 되었습니다. 플래그 없이 스크립트를 실행하면 설치 프로그램 대신 메인 프로그램이 시작됩니다.
-i 플래그 없이 스크립트를 실행하십시오.
./fluxion.sh
모든 종속성이 올바르게 해결되었다면 더 이상 오류 메시지가 표시되지 않습니다. 대신 메인 Fluxion 언어 선택 메뉴가 표시됩니다.
예상 출력:
...
╔══════════════════════════════════════════════════════════════════════════════╗
║ 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:
이 메뉴가 표시되면 모든 누락된 종속성 문제를 성공적으로 해결했음을 확인하는 것입니다. 이제 Ctrl+C를 눌러 스크립트를 종료할 수 있습니다.
요약
이 실습에서는 모든 Linux 사용자에게 중요한 일반적인 기술인 누락된 소프트웨어 종속성 문제 해결을 연습했습니다.
성공적으로 수행한 작업:
- 스크립트의 설치 프로그램을 실행하여 필요한 패키지를 확인했습니다.
- 출력을 해석하여 누락된 종속성을 식별했습니다.
sudo apt-get install명령을 사용하여 누락된 패키지를 수동으로 설치했습니다.- 설치 프로그램을 다시 실행하여 수정 사항을 확인하고 나머지 종속성을 설치했습니다.
- 모든 문제를 해결한 후 메인 애플리케이션을 성공적으로 실행했습니다.
"오류 읽기, 문제 식별, 수정 적용, 확인"이라는 이 프로세스는 Linux 및 그 외 다양한 기술 문제를 해결하기 위한 기본적인 워크플로우입니다.
