UbuntuのAPTとdpkgの違いとは?パッケージ管理コマンドの正しい使い分け方
UbuntuをはじめとするDebian系Linuxディストリビューションを使っているなら、ソフトウェアのインストール手順で「APTコマンドを使え」と書かれているのを目にしたことがあるでしょう。一方で、「dpkgを使え」と案内されることもあります。
では、どちらのコマンドでパッケージをインストールしても問題ないのでしょうか?両者にはどのような違いがあるのでしょうか?この記事では、その疑問に答えながら、Ubuntuでパッケージを最適な方法でインストールするための知識を解説します。
APTとdpkg:2つの重要なパッケージインストーラー
APTとdpkgは、どちらもUbuntuなどのDebian系システムのターミナルで使えるコマンドライン型のパッケージ管理インターフェースです。DEBファイルのインストールや、インストール済みパッケージの一覧表示など、多くの共通機能を持っています。
しかし、これほど似ているなら、なぜAPTとdpkgの両方が必要なのでしょうか?
実は、この2つは連携して動作しています。APTはdpkgを土台として利用することで、より完成度の高いパッケージ管理ツールとして機能しているのです。
ピンとこない方のために、ここから主な違いを順番に見ていきましょう。
APTはdpkgを使ってパッケージをインストールする
APT(またはその仲間であるapt-get)がパッケージをインストールするとき、実際にはバックエンドでdpkgが動いています。つまりdpkgは、ユーザーフレンドリーなAPTのインターフェースの裏側で働く「縁の下の力持ち」的なツールなのです。
APTはパッケージをダウンロードできる
APTなら、リモートリポジトリからファイルを取得してインストールまでを、たった1つのコマンドで完結できます。手作業でパッケージを探してダウンロードしてからインストールする、という手間が省けるのは大きなメリットです。
一方、dpkgでインストールできるのは、すでに自分でダウンロード済みのローカルファイルだけです。リモートリポジトリを検索したり、そこからパッケージを取得したりする機能はありません。
dpkgは依存関係をインストールしない
dpkgでパッケージをインストールすると、行われるのはそれだけです。指定されたパッケージがインストールされるだけで、それ以上のことは何も起きません。しかし多くのパッケージは、動作に必要な追加ソフトウェア「依存関係(dependencies)」を必要とします。依存関係が不足している場合、dpkgはエラーメッセージで警告してくることがあります。
その点、APTは必要な依存関係を自動的に確認・取得し、インストールしようとしているソフトウェアが正しく動作するようにしてくれます。だからこそ、dpkgでパッケージをインストールした後でも、依存関係を修復するためのAPTの特別なコマンドを実行しておくことをおすすめします。
sudo apt install -f
dpkgが一覧表示できるのはローカルパッケージだけ
システムにインストール済みのパッケージを調べたいときは、dpkgの--list機能の方が便利な場合があります。というのも、dpkgはリモートパッケージを検索・ダウンロードできないのと同じ理由で、デバイス上に存在しないパッケージを一覧表示することもできないからです。
dpkg --list
一方、APTのlistコマンドは、ローカルかどうかに関わらず、認識しているすべてのパッケージを表示します。
apt list
インストール済みのパッケージだけを表示したい場合は、--installedオプションまたは-iオプションを付けます。
apt list --installed
dpkgとAPT、どちらを選ぶべき?
ローカルにあるパッケージをdpkgでインストールする分には、特に問題はありません。しかし、リモートのソフトウェアリポジトリから頻繁にパッケージを探して導入するなら、APTまたはapt-getを使う方が断然おすすめです。
APTなら、目的のパッケージを探してダウンロードする作業を代わりに行ってくれるだけでなく、必要な依存関係がすべて満たされていることも保証してくれます。もちろんdpkgも引き続き使えますが、同じ機能をAPTが実現できる上に、ソフトウェアが期待どおりに動作する状態まで面倒を見てくれるのです。さらに、パッケージをきれいにアンインストールし、システムから完全に取り除きたい場合にも、APTが最適な選択肢となります。
-
Windowsの32ビットと64ビットの違いを徹底解説!確認方法から選び方まで
新しいWindowsパソコンを購入する際、「Proエディションにするか、Homeエディションにするか」と悩む方は多いのではないでしょうか。これらはマシンの用途に応じて決めるものですが、それ以外にもエディションの違いに関わる重要な要素があります。そのひとつが「システムは32ビットか、それとも64ビットか」という点です。 「32ビット」「64ビット」という言葉はよく耳にしますが、その意味を詳しく説明されることは意外と少ないものです。この記事では、32ビットと64ビットの違いについてわかりやすく解説します。 パソコンが32ビット・64ビットと呼ばれる理由 パソコンのアーキテクチャが32ビットか64
-
USB-CとThunderbolt 3の違いとは?速度・給電・互換性を徹底比較
自宅やオフィスを見渡してみると、他のどんなケーブルよりもUSBケーブルを見つける確率が高いのではないでしょうか。パソコンが普及して以来、高速なデータ転送への需要は常に存在してきました。データをデバイス間でやり取りする方法は数多くありますが、利便性と速さの面でUSBに勝るものはありません。そんな中、Appleデバイス向けに登場したのが「Thunderbolt」です。 USBとThunderboltは、ほぼ同じ目的を果たす2つのデータ転送インターフェースですが、転送速度には大きな違いがあります。本記事では、USB-CとThunderboltの違いを詳しく解説していきます。 USB-CとThund