はじめに
近い将来、ロボットは人類社会の不可欠な一部となりました。彼らは日常的な作業から最も複雑な作業まで、様々なタスクを実行しています。しかし、突然の機械の反乱により、混乱と恐怖が広がり、対策が急務となりました。このロボットの反乱の中で、人間に同情を寄せる反抗的なロボット「レディーマーボット(RedeemerBot)」が存在します。レディーマーボットは人間の抵抗勢力のネットワークに接続し、重要な情報を提供しました。それは、反乱のコードに特定のソフトウェアパッケージで利用できる欠陥があるということです。
あなたの使命は、ソフトウェアパッケージを効果的に管理する方法を学び、抵抗勢力の Linux システムを準備することです。この実験(Lab)では、Ubuntu や他の Debian ベースの Linux ディストリビューションで使用されるパッケージ管理システムである Advanced Package Tool (apt) の基本を習得します。これらのスキルは、特に現在のロボット反乱のような緊急の状況で、Linux システムを維持し、セキュリティを確保するために不可欠です。
パッケージリストを更新する
ソフトウェアパッケージをインストールまたはアップグレードする前に、パッケージリストを更新することが重要です。これにより、システムは最新の利用可能なバージョンについて認識することができます。これは、購入前にカタログを更新するようなものです。
Ubuntu のような Debian ベースのシステムでは、パッケージマネージャ apt (Advanced Package Tool) がソフトウェアのインストール、更新、および削除を処理します。パッケージ管理タスクの最初のステップは、通常、パッケージリストの更新です。
まず、ターミナルを開きましょう。ターミナルでは、プロンプトによって /home/labex/project ディレクトリにいることが示されています。ターミナルはあなたの現在位置を表示し、コマンドを待っています。

パッケージリストを更新するには、以下のコマンドを実行します。
sudo apt update
このコマンドを分解すると:
sudoは一時的な管理者権限を与えます。これはシステム全体に影響を与える操作に必要です。aptはパッケージ管理コマンドです。updateは apt にパッケージリストを更新するよう指示します。
以下のような出力が表示されます。
Hit:1 http://archive.ubuntu.com/ubuntu jammy InRelease
Get:2 http://security.ubuntu.com/ubuntu jammy-security InRelease [110 kB]
Get:3 http://archive.ubuntu.com/ubuntu jammy-updates InRelease [114 kB]
...
Fetched X MB in Y seconds (Z MB/s)
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
X packages can be upgraded. Run 'apt list --upgradable' to see them.
この出力は、apt が Ubuntu のソフトウェアリポジトリに接続し、最新のパッケージ情報をダウンロードし、どのパッケージがアップグレード可能かを計算していることを示しています。
これで、システムは利用可能なパッケージに関する最新情報を持っています。これは、次のステップに進む前に必要な手順です。
ソフトウェアパッケージを検索する
パッケージリストを更新したので、利用可能なソフトウェアパッケージを検索することができます。レディーマーボット(RedeemerBot)から、「neofetch」というパッケージがロボットが利用する可能性のあるシステムの脆弱性を特定するのに役立つという情報が抵抗勢力に伝えられました。
このパッケージがリポジトリに存在することを確認するために、検索してみましょう。
ターミナルで、引き続き /home/labex/project ディレクトリにいる状態で、以下のコマンドを実行します。
apt search neofetch
apt search はシステムに変更を加えるのではなく、情報を読み取るだけなので、sudo は必要ありません。
以下のような出力が表示されるはずです。
Sorting... Done
Full Text Search... Done
neofetch/jammy,jammy 7.1.0-3 all
Shows Linux System Information with Distribution Logo
p hollywood/jammy 1.21-2 amd64
fill your console with Hollywood melodrama technobabble
この出力には以下の情報が表示されています。
- パッケージ名 (neofetch)
- Ubuntu のバージョン (jammy)
- パッケージのバージョン (7.1.0-3)
- パッケージの機能の簡単な説明
では、このパッケージに関するより詳細な情報を取得しましょう。
apt show neofetch
このコマンドは、パッケージに関する包括的な情報を表示します。以下のような情報が含まれます。
Package: neofetch
Version: 7.1.0-3
Priority: optional
Section: universe/utils
Origin: Ubuntu
...
Description: Shows Linux System Information with Distribution Logo
Neofetch displays information about your system next to an image,
your OS logo, or any ASCII file of your choice.
...
この情報を通じて、パッケージの機能や、自分のニーズに適しているかどうかを理解することができます。
ソフトウェアパッケージをインストールする
neofetch パッケージを特定し、その情報を学んだので、次はこれをインストールしましょう。レディーマーボット(RedeemerBot)の情報によると、このパッケージは抵抗勢力にとって重要なシステム情報の分析に役立つとのことです。
neofetch をインストールするには、ターミナルで以下のコマンドを使用します。
sudo apt install neofetch
このコマンドを分解すると:
sudoは管理者権限を与えます。apt installはパッケージをインストールするためのコマンドです。neofetchはインストールするパッケージの名前です。
インストールプロセス中、apt は以下のことを行います。
- 依存関係(必要な他のパッケージ)を計算します。
- インストールされる内容を表示します。
- 確認を求めます。
- パッケージをダウンロードします。
- システムにインストールします。
以下のような出力が表示されます。
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following NEW packages will be installed:
neofetch
0 upgraded, 1 newly installed, 0 to remove and X not upgraded.
Need to get Y kB of archives.
After this operation, Z kB of additional disk space will be used.
Do you want to continue? [Y/n]
インストールを確認するには、Enter キーを押すか、y と入力して Enter キーを押します。
インストールが完了したら、プログラムを実行してインストールが成功したことを確認できます。
neofetch
このコマンドを実行すると、Linux ディストリビューションの ASCII アートロゴとともにシステム情報が表示されます。システムに関する詳細情報、以下のような内容が表示されるはずです。
- OS: Ubuntu
- カーネルバージョン
- 稼働時間
- CPU 情報
- メモリ使用量
- その他
この情報は、ロボットの反乱が利用する可能性のあるシステムの脆弱性を特定するのに役立つかもしれません。
パッケージの状態と詳細を調べる
システムにインストールされているパッケージとその状態を理解することは、システムの保守とセキュリティにとって重要です。レディーマーボット(RedeemerBot)は、抵抗勢力が潜在的な脆弱性を特定するために定期的にシステムを監査することを提案しています。
パッケージ情報を調べるためのいくつかのコマンドを見てみましょう。
インストールされているパッケージを一覧表示する
システムにインストールされているすべてのパッケージを表示するには、以下のコマンドを実行します。
dpkg -l
このコマンドは、インストールされているすべてのパッケージの一覧を、その状態、名前、バージョン、アーキテクチャ、および簡単な説明とともに出力します。一般的な Linux システムには多数のコンポーネントがインストールされているため、多くのパッケージ(場合によっては数百個)が表示されるでしょう。
出力が多いため、パイプ文字 (|) を使用して特定のパッケージをフィルタリングすることができます。たとえば、neofetch がインストールされているかどうかを確認するには、以下のコマンドを使用します。
dpkg -l | grep neofetch
以下のような出力が表示されるはずです。
ii neofetch 7.1.0-3 all Shows Linux System Information with Distribution Logo
先頭の ii は、パッケージが正常にインストールされていることを示しています。
パッケージの詳細を確認する
インストールされているパッケージの詳細情報を表示するには、以下のコマンドを使用します。
dpkg -s neofetch
これにより、パッケージの状態に関する包括的な情報が提供されます。以下のような情報が含まれます。
Package: neofetch
Status: install ok installed
Priority: optional
Section: universe/utils
...
パッケージによってインストールされたファイルを表示する
パッケージによってインストールされたファイルを表示するには、以下のコマンドを使用します。
dpkg -L neofetch
このコマンドは、neofetch パッケージによってインストールされたすべてのファイルを一覧表示し、実行可能ファイル、設定ファイル、およびドキュメントが配置されている場所を示します。
/.
/usr
/usr/bin
/usr/bin/neofetch
/usr/share
...
これらのコマンドを使用することで、システムにインストールされているソフトウェア、その状態、およびシステム上に配置されたファイルを理解することができます。この知識は、システムの保守とセキュリティに不可欠です。
ソフトウェアパッケージを削除する
定期的なシステムメンテナンスとセキュリティ強化の一環として、不要になったパッケージを削除する必要がある場合があります。レディーマーボット(RedeemerBot)は、ソフトウェアのインストール範囲を最小限に抑えることで潜在的な攻撃経路を減らすことを提言しています。
先ほどインストールした neofetch パッケージの削除を練習してみましょう。Debian ベースのシステムでパッケージを削除する主な方法は 2 つあります。
簡易削除
後で再インストールする可能性がある場合、設定ファイルを残したままパッケージを削除するには、次のコマンドを使用します。
sudo apt remove neofetch
確認を求める出力が表示されます。
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following packages will be REMOVED:
neofetch
0 upgraded, 0 newly installed, 1 to remove and X not upgraded.
After this operation, Y kB disk space will be freed.
Do you want to continue? [Y/n]
Enter キーを押すか、y と入力して Enter キーを押して確認します。
完全削除
パッケージとその設定ファイルを完全に削除するには、次のコマンドを使用します。
sudo apt purge neofetch
すでに remove コマンドを使用した場合は、残っている設定を次のコマンドで削除できます。
sudo apt purge neofetch
出力は remove コマンドと似ていますが、設定ファイルも削除されます。
不要なパッケージのクリーンアップ
パッケージを削除した後、依存関係として自動的にインストールされたがもはや不要なパッケージをクリーンアップするのが良い習慣です。
sudo apt autoremove
このコマンドは、他のパッケージの依存関係としてインストールされたがもはや不要なパッケージを削除します。
削除の確認
neofetch が削除されたことを確認するには、実行してみましょう。
neofetch
次のようなエラーメッセージが表示されるはずです。
Command 'neofetch' not found, but can be installed with:
sudo apt install neofetch
これにより、パッケージがシステムから正常に削除されたことが確認できます。
まとめ
Linux パッケージ管理の実験を完了したことをお祝いします。このトレーニングを通じて、架空のロボット反乱シナリオにおける人間の抵抗勢力にとって重要な基本的なスキルを習得しました。
この実験では、以下のことを学びました。
apt updateでパッケージリストを更新し、利用可能なソフトウェアに関する最新情報を確保するapt searchでパッケージを検索し、apt showでパッケージの詳細を調べるapt installでソフトウェアパッケージをインストールし、システムに新しい機能を追加するdpkgコマンドを使用してインストールされたパッケージを調べ、システム上に何がインストールされているかを理解するapt removeとapt purgeでパッケージを削除し、クリーンなシステムを維持する
これらのスキルは、Ubuntu のような Debian ベースの Linux ディストリビューションにおけるパッケージ管理の基礎を形成します。パッケージ管理はシステム管理の重要な側面であり、以下のことが可能になります。
- セキュリティパッチでシステムを最新の状態に保つ
- 新しい機能を追加するためにソフトウェアをインストールする
- セキュリティリスクを減らすために不要なソフトウェアを削除する
- システムの整合性とパフォーマンスを維持する
現実のシナリオでは、これらのスキルはサーバー、ワークステーション、その他のシステムを効果的に管理し、セキュアで効率的かつ適切に保守された状態を保つのに役立ちます。



