ソフトウェアの管理は、すべての Ubuntu Server 管理者にとって基本的なスキルです。Azure、AWS、GCP などのクラウド環境で作業している場合でも、オンプレミスのインフラを管理している場合でも、 APT のようなパッケージ管理ツールを理解することは、安全で最適化されたシステムを維持するために不可欠です。
このガイドでは、ソフトウェアのインストール、更新、管理の基本を説明し、クラウド特有のシナリオを検討し、一般的な問題のトラブルシューティングを行い、Ubuntu Server の管理を習得するための実践的な例を紹介します。
過去の記事:
01. Ubuntu Server 入門 – SysOSX: AI & Cloud
02. 初めての Ubuntu サーバーのセットアップ方法:初心者向けガイド – SysOSX: AI & Cloud
03. Ubuntu Server 向け Linux コマンドラインの習得 – SysOSX: AI & Cloud
04. Ubuntu Server でのユーザーと権限の管理:包括的ガイド – SysOSX: AI & Cloud
05. Ubuntu Server のネットワークの基礎:包括的ガイド – SysOSX: AI & Cloud
1. Ubuntu での APT とパッケージ管理を理解する
Ubuntu Server は、 APT (Advanced Package Tool)を主要なパッケージマネージャーとして使用しています。APT は、依存関係を自動的に処理し、リポジトリをパッケージの信頼できるソースとして使用することで、ソフトウェア管理を簡素化します。
APT の主要コンポーネント:
- apt:パッケージを管理するためのコマンドラインツールです。
- dpkg:
.debファイル用低レベルパッケージマネージャーです。 - リポジトリ:Ubuntu パッケージが保存され、取得されるオンラインソースです。
2. APT を使ったソフトウェアのインストール
Ubuntu Server にソフトウェアをインストールするには、 apt install コマンドを使用します。
例:Apache Web サーバーのインストール
- パッケージリストを更新します。
sudo apt update
出力:
Hit:1 http://azure.archive.ubuntu.com/ubuntu noble InRelease
Get:2 http://azure.archive.ubuntu.com/ubuntu noble-updates InRelease [126 kB]
Get:3 http://azure.archive.ubuntu.com/ubuntu noble-backports InRelease [126 kB]
Get:4 http://azure.archive.ubuntu.com/ubuntu noble-security InRelease [126 kB]
Get:5 http://azure.archive.ubuntu.com/ubuntu noble-updates/main amd64 Packages [922 kB]
Get:6 http://azure.archive.ubuntu.com/ubuntu noble-updates/main amd64 Components [151 kB]
Get:7 http://azure.archive.ubuntu.com/ubuntu noble-updates/universe amd64 Components [364 kB]
Get:8 http://azure.archive.ubuntu.com/ubuntu noble-updates/restricted amd64 Components [212 B]
Get:9 http://azure.archive.ubuntu.com/ubuntu noble-updates/multiverse amd64 Components [940 B]
Get:10 http://azure.archive.ubuntu.com/ubuntu noble-backports/main amd64 Components [7076 B]
Get:11 http://azure.archive.ubuntu.com/ubuntu noble-backports/universe amd64 Components [21.3 kB]
Get:12 http://azure.archive.ubuntu.com/ubuntu noble-backports/restricted amd64 Components [212 B]
Get:13 http://azure.archive.ubuntu.com/ubuntu noble-backports/multiverse amd64 Components [212 B]
Get:14 http://azure.archive.ubuntu.com/ubuntu noble-security/main amd64 Components [9024 B]
Get:15 http://azure.archive.ubuntu.com/ubuntu noble-security/universe amd64 Components [51.9 kB]
Get:16 http://azure.archive.ubuntu.com/ubuntu noble-security/restricted amd64 Components [208 B]
Get:17 http://azure.archive.ubuntu.com/ubuntu noble-security/multiverse amd64 Components [208 B]
Fetched 1907 kB in 1s (2778 kB/s)
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
15 packages can be upgraded. Run 'apt list --upgradable' to see them.
- Apache をインストールします。
sudo apt install apache2
3. ソフトウェアの削除
パッケージが不要になった場合は、 apt remove または apt purge コマンドを使って削除できます。
例:Apache の削除
sudo apt remove apache2
出力:
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages will be REMOVED:
apache2
...
After this operation, 2 MB disk space will be freed.
Do you want to continue? [Y/n]
設定ファイルを含めて完全に削除するには、次のようにします。
sudo apt purge apache2
4. パッケージの更新とアップグレード
定期的な更新は、システムのセキュリティと安定性にとって非常に重要です。
コマンド:
- パッケージリストの更新
sudo apt update
- インストール済みパッケージのアップグレード
sudo apt upgrade
- フルアップグレード(カーネルの更新を含む)
sudo apt full-upgrade
出力:
The following packages will be upgraded:
linux-image-5.4.0-91-generic linux-headers-5.4.0-91-generic ...
Do you want to continue? [Y/n]
5. リポジトリの管理
リポジトリはパッケージ管理に不可欠です。デフォルトでは、Ubuntu は公式リポジトリを使用しますが、必要に応じて追加のリポジトリを追加、変更、削除できます。
Deb822 形式でのリポジトリ管理
最近の Ubuntu バージョンでは、 Deb822 形式 によるリポジトリ管理に移行しました。従来の /etc/apt/sources.list ファイルを使う代わりに、リポジトリは現在 .sources ファイルで管理されています。これらのファイルは /etc/apt/sources.list.d/ ディレクトリに配置されています。
現在のリポジトリの表示
現在のリポジトリを確認するには、 .sources ファイルを確認します。 /etc/apt/sources.list.d/:
ls /etc/apt/sources.list.d/
たとえば、
cat /etc/apt/sources.list.d/ubuntu.sources
.sources ファイルの Deb822 形式は次のとおりです。
Types: deb
URIs: http://archive.ubuntu.com/ubuntu/
Suites: noble-security
Components: main universe restricted multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg
リポジトリの追加
Deb822 形式で新しいリポジトリを追加するには、 .sources ファイルを作成します。作成先は /etc/apt/sources.list.d/です。たとえば、カスタム PPA リポジトリを追加するには、次のようにします。
sudo nano /etc/apt/sources.list.d/custom.sources
必要なカスタムコンテンツを追加します。
Types: deb
URIs: http://customizedurl/
Suites: noble
Components: main
Signed-By: /usr/share/keyrings/repository-name.gpg
ファイルを保存し、パッケージリストを更新します。
sudo apt update
リポジトリの削除
リポジトリを削除するには、次のディレクトリから対応する .sources ファイルを削除します。 /etc/apt/sources.list.d/:
sudo rm /etc/apt/sources.list.d/custom.sources
sudo apt update
Deb822 形式の利点
- 構造化された設定:リポジトリの種類、URI、スイート、コンポーネントを明確に分離します。
- セキュリティの向上:GPG キーを指定してリポジトリの署名を行うことができます。使用するフィールドは
Signed-Byです。 - 互換性の向上:クラウド環境やコンテナ化環境で複数のリポジトリを管理しやすくなります。
詳細については、 sources.list(5) のマニュアルページ。
6. パッケージキャッシュの管理
APT は、ダウンロードしたパッケージファイルとメタデータをローカルに保存するためにキャッシュシステムを使用します。このキャッシュは、ソフトウェアのインストールや更新などの操作を高速化するのに役立ちますが、時間の経過とともに大きくなり、ディスク容量を消費する可能性があります。キャッシュの管理方法を理解することは、システムのパフォーマンスを維持し、リソースを解放するために不可欠です。
キャッシュサイズの確認
キャッシュが使用している容量を確認するには、次のようにします。
sudo du -sh /var/cache/apt/
出力例:
126M /var/cache/apt/
キャッシュのクリーニング
- パッケージキャッシュのクリア
apt cleanコマンドを使用して、キャッシュされたすべてのパッケージファイルを削除します。sudo apt cleanこれにより、/var/cache/apt/archivesディレクトリがクリアされます。このディレクトリには、ダウンロードした.debファイルが格納されています。 - 部分ダウンロードの削除
ダウンロードが中断されたり破損したりした場合は、次のコマンドで部分ファイルを削除します。sudo apt autocleanこれにより、古いファイルと部分ダウンロードのみが削除されます。
キャッシュクリーンアップの出力例
sudo apt clean
sudo apt autoclean
出力:
Cleaning up /var/cache/apt/archives...
Removing unused files...
Done.
キャッシュの再構築
キャッシュのメタデータが破損している疑いがある場合は、パッケージリストを更新してキャッシュを再構築します。
sudo apt update
これにより、ローカルキャッシュがリポジトリの最新メタデータで更新されます。
7. クラウドシナリオ:Azure、AWS、GCP でのソフトウェア管理
クラウド環境では、Ubuntu Server でのソフトウェア管理はオンプレミスのセットアップと同様に機能します。ただし、追加の考慮事項があります。
Azure
- Azure には、 カスタム スクリプト拡張機能 があり、VM デプロイ時のソフトウェアインストールを自動化できます。
- 例:スクリプトを使用した Nginx のインストール:
az vm extension set \
--resource-group myResourceGroup \
--vm-name myVM \
--name CustomScript \
--publisher Microsoft.Azure.Extensions \
--settings '{"commandToExecute":"sudo apt update && sudo apt install -y nginx"}'
AWS
- ユーザーデータスクリプト を使って、インスタンスの起動時にソフトウェアをインストールします。
- 例:EC2 インスタンスへの Docker のインストール:
#!/bin/bash
sudo apt update
sudo apt install -y docker.io
GCP
- スタートアップ スクリプト を使って、VM インスタンスへのソフトウェアのインストールを管理します。
- 例:MySQL のインストール:
#!/bin/bash
sudo apt update
sudo apt install -y mysql-server
8. インストールまたはアンインストール中によくある問題のトラブルシューティング
1. パッケージが見つかりません
パッケージが見つからない場合は、リポジトリが有効になっていることを確認してください。
sudo apt update
sudo apt update
2. 依存関係のエラー
不足している依存関係を修正します。
sudo apt --fix-broken install
3. リポジトリの問題
リポジトリのエラーを確認します。
sudo apt update
出力例:
Err:1 http://ppa.launchpad.net/repository-name/ubuntu noble Release
404 Not Found
解決策:次のファイル内のリポジトリエントリを削除または修正します。 /etc/apt/sources.list。
4. アンインストール後に残存ファイルが残る
残ったファイルをクリーンアップします。
sudo apt autoremove
sudo apt purge package-name
5. 権限が拒否されました
root 権限があることを確認してください。
sudo apt install package-name
9. パッケージ管理のベストプラクティス
- ソフトウェアをインストールする前に必ず更新する
sudo apt update
- システムを定期的にアップグレードする
apt upgradeまたはapt full-upgradeを使ってシステムを安全に保ちます。 - 不要なパッケージを削除する
sudo apt autoremove
- 信頼できるリポジトリを使用する
必要な場合を除き、サードパーティのリポジトリは避けてください。 - クラウド環境でのパッケージの変更を監視する
Ansible などのスクリプトや構成管理ツールを使用して、更新を自動化します。 - キャッシュを定期的にクリアする
ディスク容量を解放するために、キャッシュを定期的にクリアします。
sudo apt clean
結論
オンプレミスのサーバーを管理している場合でも、クラウドで作業している場合でも、Ubuntu Server でのソフトウェアのインストールと管理を習得することは、安全で効率的なシステムを維持するために不可欠です。このガイドで説明されているベストプラクティスに従うことで、サーバーを最適化された状態に保ち、あらゆるワークロードに対応できるようにすることができます。
詳細については、Ubuntu の公式ドキュメントをご覧ください。トピックは APT。
次は?
次回の記事では、 Ubuntu Server のパッチ適用と更新についてさらに詳しく取り上げます。これは、セキュリティと安定性を維持するための重要なタスクです。学べる内容は次のとおりです。
- パッチ適用がセキュリティと安定性にとって重要な理由 と、脆弱性を防ぐ仕組み。
- apt を使ってサーバーを効果的に更新およびアップグレードする方法。
- apt update、 apt upgrade、および apt full-upgrade の違いと、よくある間違いを避ける方法。
- 更新の自動化 unattended-upgrades による時間の節約と一貫性の確保。
- カーネル更新 の処理方法と、 reboot-required 通知によるサーバーの円滑な再起動。
Ubuntu Server を安全かつ最新の状態に保つための実践的な知見にご期待ください。
4 thoughts on “06. Installing and Managing Software on Ubuntu Server: A Complete Guide”