はじめに
Linux 上で複雑なソフトウェア、特に GitHub のようなリポジトリからクローンされたツールを扱う際、「依存関係が見つかりません」というエラーに遭遇することがよくあります。これは、ソフトウェアが他のプログラムやライブラリのインストールを必要としているにもかかわらず、それらがシステムに存在しない場合に発生します。
この実験 (Lab) では、スクリプトの欠落している依存関係を特定し、インストールする方法という基本的なトラブルシューティングスキルを学びます。ここでは、人気のセキュリティ監査ツールである 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)
この実験 (Lab) では、自動インストールは進めないでください。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 が必要であるがシステムで見つからないことを明確に示しています。この実験 (Lab) では、プロセスの例として mdk4 のインストールに焦点を当てます。
このステップで実行するコマンドはありません。目標は、診断メッセージの読み取りと解釈を練習することだけです。
「apt-get install」を使用した不足しているパッケージの手動インストール
不足しているパッケージ mdk4 を特定したので、標準的な Debian/Ubuntu のパッケージマネージャーである apt-get を使用してインストールします。これはソフトウェアを管理するための一般的なコマンドラインツールです。
パッケージをインストールするには、sudo apt-get install <パッケージ名> コマンドを使用します。ソフトウェアのインストールはシステムを変更し、管理者権限が必要なため、sudo が必要です。また、確認プロンプトに自動的に「yes」と答える -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) ...
これで、不足していた依存関係の 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 およびそれ以外の幅広い技術的問題を解決するための基本的なワークフローです。
