このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。
Linuxコマンドの基本:パッケージ管理(Ubuntu):aptコマンド

パッケージ管理(Ubuntu):aptコマンド
ここでは、UbuntuをはじめとするDebian系ディストリビューションで採用されているAPT(Advanced Packaging Tool)系のコマンドを中心に、その概要と基本的な使い方を紹介します。APTはdpkg
コマンドを基盤としており、apt-get
やapt-cache
などのコマンドが提供する高機能な仕組みによって、ソフトウェアのインストール・アンインストール・更新・検索などを簡潔に行えるようになっています。

APTコマンドの位置づけと利点
deb形式のパッケージ管理
UbuntuなどのDebian系Linuxディストリビューションでは、ソフトウェアはdeb
形式のパッケージファイルとして提供されます。もともとはdpkg
コマンドを用いてこれらのパッケージを直接インストールすることが可能でしたが、dpkg
自体は依存関係解決やリポジトリ問い合わせの機能を持たず、実務で使うにはやや不便でした。
APTによる拡張と簡略化
そこで登場するのがAPTです。APTはdpkg
コマンドを基盤として、以下の点でパッケージ管理を大幅に簡略化・高度化しました。
- リポジトリとの連携:インターネット上のパッケージ配布元(リポジトリ)から自動的にパッケージ情報やパッケージ本体を取得
- 依存関係の自動解決:インストール時や削除時に必要な別パッケージを自動的に導入・除去
- 機能別コマンドの提供:
apt-get
によるインストール・アップデート、apt-cache
による検索・情報表示など、用途に応じたコマンドが利用可能
このような機能によって、apt-get
やapt-cache
コマンドはUbuntu環境での日常的なソフトウェア管理において標準的なツールとなっています。
apt-getとapt-cache、そしてaptitude
APT系コマンドには、インストール・アンインストールに用いるapt-get
、情報表示や検索に用いるapt-cache
など、用途別にコマンドが分かれています。この分割を煩雑に感じるユーザもいるため、これらの機能を統合したaptitude
コマンドも存在します。
ここでは、基本かつ広く利用されているapt-get
およびapt-cache
コマンドに絞って解説します。dpkg
、aptitude
については必要に応じてコマンドマニュアルを参照してください。
APT系コマンドの基本的な書式
APT系コマンドは、以下のような書式で実行します。
【書式】apt-get [オプション] [コマンド] [パッケージ名…]
apt-cache [オプション] [コマンド] [パッケージ名…]
yum
コマンドと同様、APT系コマンドは多機能であり、[コマンド]
部分に「install」や「remove」など、実行する機能を指定します。
パッケージのインストール
apt-get
コマンドを用いてパッケージをインストールするには、install
コマンドを指定し、続けてパッケージ名を入力します。
【書式】パッケージのインストールsudo apt-get install <パッケージ名>
- 解説
sudo
を用いてroot権限で実行します。コマンド実行前に本当にインストールしてよいかを慎重に確認してください。 - 例:
aptitude
パッケージをインストールする場合
$ sudo apt-get install aptitude
この際、APTは依存関係を自動解決し、必要なパッケージをまとめて導入してくれます。
パッケージ間の依存関係自動解決
多くのパッケージは「先にインストールすべき別パッケージ」を必要とします。dpkg
のみでは手動で依存パッケージを入れる必要がありましたが、APTはapt-get install
時に自動で不足パッケージも取得・導入します。
例:aptitudeインストール時の依存性解決
$ sudo apt-get install aptitude
...(省略)...
以下の追加パッケージがインストールされます:
aptitude-common ...(依存パッケージ一覧)...
続行しますか? [Y/n]
APTは必要なパッケージをすべて提示し、ユーザがY
と回答すれば自動的にまとめてインストールします。
基本的なパッケージ削除コマンド:apt-get remove
UbuntuなどのLinuxディストリビューションを運用していると、かつてインストールしたものの不要になったパッケージが出てくることがあります。不要なパッケージを放置すると、ディスク容量を無駄に消費したり、システムの管理性を損なったりします。こうした場合、apt-get
コマンドによるパッケージの削除(アンインストール)を行うことでシステムをクリーンな状態に保てます。
apt-get remove
コマンドは、指定したパッケージをシステムから削除します。ただし、設定ファイルなどは残り、バイナリや関連ライブラリのみが削除されます。パッケージ削除時には、apt-get
が依存関係を自動的に処理するため、不要になった関連パッケージをまとめて取り除くことが可能です。
コマンド書式と使用例
コマンド | 役割・詳細 | 使用例 |
---|---|---|
sudo apt-get remove <パッケージ名> | 指定したパッケージを削除(設定ファイルは残る) | $ sudo apt-get remove aptitude-common |
解説
sudo
を付けるのはroot権限が必要なためです。- 実行すると「続行しますか? [Y/n]」と聞かれ、
y
を押すと削除が実行されます。
依存関係の自動処理
パッケージには「先にインストールしてある別のパッケージが必要」という依存関係が存在する場合が多いです。apt-get remove
コマンドは、これら依存パッケージも自動的に処理します。つまり、あるパッケージを削除する際、そのパッケージに依存する別のパッケージも必要に応じて一緒に削除されます。
依存関係解決の例
user01@ubuntu:~$ sudo apt-get remove aptitude-common
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了
状態情報を読み取っています... 完了
以下のパッケージが自動でインストールされましたが、もう必要とされていません:
libcwidget4 libdpkg-perl libfile-fcntllock-perl libxapian30
これを削除するには 'sudo apt autoremove' を利用してください。
以下のパッケージは「削除」されます:
aptitude aptitude-common
アップグレード: 0 個、新規インストール: 0 個、削除: 2 個、保留: 42 個。
この操作後に 13.9 MB のディスク容量が解放されます。
続行しますか? [Y/n] y
(データベースを読み込んでいます ... 現在 206675 個のファイルとディレクトリがインストールされています。)
aptitude (0.8.13-5ubuntu5) を削除しています ...
aptitude-common (0.8.13-5ubuntu5) を削除しています ...
man-db (2.12.0-4build2) のトリガを処理しています ...
確認プロンプトのスキップと自動化
削除時には「続行しますか? [Y/n]」と確認されますが、-y
オプションを付ければすべてy
で回答したとみなし、プロンプトなしで処理が進みます。これはシェルスクリプトでの自動化に便利です。
自動承認の例
$ sudo apt-get -y remove aptitude-common
これで対話的な確認なしにパッケージ削除が実行されます。
設定ファイルも含めた完全な削除:apt-get purge
remove
コマンドは実行バイナリやライブラリを削除する一方、設定ファイルは残します。すべてのファイルを完全に削除したい場合は、remove
ではなくpurge
コマンドを使います。
完全な削除の例
このコマンドで実行すれば、設定ファイルや関連データまで含めて完全にシステムから取り除くことができます。
$ sudo apt-get purge <パッケージ名>
まとめ
- UbuntuなどのDebian系LinuxではAPT系コマンド(
apt-get
,apt-cache
など)が標準的なパッケージ管理手段。 apt-get install
やapt-get remove
、apt-cache search
などを使って、インストール・削除・検索を容易に行える。dpkg
コマンドに比べ、APT系コマンドは依存関係解決やリポジトリ参照が自動化され、管理が非常にシンプル。
APT系コマンドの基本を理解することで、Ubuntu環境でのパッケージ管理が効率的かつスムーズになり、システム運用や環境構築に大いに役立つでしょう。