dpkg vs apt vs apt-get: 実際の違いとそれぞれの使い分け方

最終更新: 27/02/2026
  • dpkg は、依存関係を解決せずにローカル .deb ファイルをインストールおよび削除する低レベルのパッケージ マネージャーです。
  • APT は dpkg の上位レイヤーとして機能し、リポジトリ、キャッシュ、および自動依存関係解決を管理します。
  • apt、apt-get、aptitude はそれぞれ異なる APT フロントエンドであり、エンド ユーザー、スクリプト、高度な管理など、異なる用途向けに設計されています。
  • 状況に応じて適切なツールを選択すると、管理が簡素化され、Debian および派生システムでのエラーが減少します。

パッケージマネージャー dpkg apt および apt-get

Debianベースのディストリビューション(Ubuntu、Linux Mint、Devuanなど)では、次のような疑問がよく生じます。 dpkg、apt、apt-get、aptitude を使用する場合の違いは何ですか?一見すると、どれもプログラムのインストール、アップデート、削除といった同じことのように見えます。しかし、ソフトウェアエコシステムの中でそれぞれ異なる役割を果たしており、これを理解することで多くの問題から解放されます。

この記事では、その仕組みを冷静に分析します。 低レベルマネージャとしてのdpkgAPT は最上位レイヤーとして何をもたらしますか? また、それらはどう違いますか? apt、apt-get、aptitudeそして、それぞれのケースで習得すべき基本コマンドについても説明します。読み終える頃には、明確な理解が得られるはずです。 各ツールをいつ、なぜ使用するのか日常的なタスクでも、より高度なタスクやスクリプトでも使用できます。

すべての基礎となる低レベルパッケージマネージャdpkg

Debianのパッケージシステム全体の基盤となる柱は dpkg は、.deb ファイルを直接操作できるネイティブ パッケージ マネージャーです。これはDebianの最初のパッケージマネージャであり、今日に至るまですべての派生ディストリビューションの標準となっています。RPMから移行する場合は、以下の方法でパッケージを変換できます。 Alienでパッケージを変換する dpkg でインストールできる .deb ファイルを生成します。

高度なツールとは異なり、dpkgは ローカルの .deb パッケージのインストール、アンインストール、クエリリモートリポジトリを扱ったり、インターネットからパッケージをダウンロードしたり、依存関係を独自に解決したりすることはできません。dpkg を使って何かをインストールした際にライブラリが不足している場合は、手動で修正する必要があります。

そのため、dpkgは次のような用途に最適なツールです。 非常に正確かつ制御された方法でパッケージを管理する (たとえば、.deb を手動でダウンロードする場合や、独自のパッケージをビルドする場合)、依存関係をどう処理するかを正確に把握する必要があることも意味します。

Debianでこのユーティリティを提供するバイナリパッケージには、dpkgに加えて、次のような関連ツールが含まれています。 dpkg-deb、dpkg-split、dpkg-query、dpkg-divert、または dpkg-trigger、および次のような補助ユーティリティ update-alternatives o start-stop-daemonパッケージ構築タスクには、別のパッケージがあります。 dpkg-devコンパイルツールを追加します。

dpkg でパッケージと状態を一覧表示する

管理者が通常最初に必要とするものの一つは システムにインストールされているパッケージを確認するdpkg を使用すると、いくつかの方法でこれを実行できます。

  • dpkg -l: パッケージのリストとそのステータス (インストール済み、削除済みなど) を表示します。
  • dpkg -l nombre_paquete: そのパッケージのみをフィルタリングし、インストールされているかどうかを通知します。
  • dpkg --get-selections: パッケージの完全なリストと現在の選択内容を表示します。
  • dpkg --get-selections paquete: 特定のパッケージがインストール済み、アンインストール済みなどとしてマークされているかどうかをすばやく確認します。

不思議な詳細はそれです dpkg –get-selectionsは「deinstall」状態のパッケージもリストしますこれらはアンインストールされたパッケージですが、設定ファイルやメタデータはシステム上に残っています。APTでクエリを実行した際に、これがどのように反映されるかは後ほど説明します。

dpkg でパッケージをインストール、削除、パージする

ダウンロードした.debファイルを直接操作するために、dpkgは非常に明確なコマンドを提供しています。 リポジトリを経由せずに特定のパッケージをインストールおよびアンインストールする:

  • dpkg -i paquete.deb: 指定されたパッケージをインストールします (install)。
  • dpkg -r nombre_paquete: パッケージを削除しますが、構成ファイルは残します (削除)。
  • dpkg -P nombre_paquete: 完全なパージを実行し、関連する構成ファイルも削除します (パージ)。

いつ使用されますか -rの代わりに-Pオプション バイナリと設定ファイルの両方がクリーンアップされます。これは、そのアプリケーションをインストールしたことがなかったかのようにシステムを終了させたい場合に非常に便利です。繰り返しますが、dpkgでは以下の処理は実行されません。 そのパッケージにのみインストールされた依存関係を自動的に削除しますそれを自分で管理するか、APT に頼る必要があります。

.deb パッケージの情報と内容を表示する

もう一つの興味深い機能は、 .deb パッケージに含まれる内容やメタデータを検査するここで実用性が重要になります。 dpkg-debdpkg パッケージ自体に含まれています:

  • dpkg-deb -I paquete.deb: 詳細なパッケージ情報 (名前、バージョン、依存関係、メンテナーなど) を表示します。
  • dpkg-deb --contents paquete.deb: その .deb をインストールするときにシステムにインストールされるすべてのファイルを一覧表示します。

これらのオプションは、必要なときに非常に便利です パッケージがシステム内で何を行うかを正確に監査する または、特定の .deb によってインストールされたパスやファイルに関する問題をデバッグする場合。

APT: dpkg の上位層

APT(Advanced Package Tool)はdpkgをベースに構築されており、 依存関係の解決とリポジトリ管理を追加するライブラリとユーティリティのコレクションほとんどのユーザーは、.deb ファイルと直接通信するのではなく、このレイヤーと対話し、低レベルの操作のために dpkg を呼び出します。

  DupeGuruとは何ですか。用途、特徴、意見、価格

APTは主に次のように記述されます パッケージ、バージョン、オリジン、関係のデータベースを操作するための関数を提供する C++ ライブラリいくつかのコマンドライン フロントエンドはこのライブラリに依存しています。 apt-get, apt-cache, apt また、次のような外部ツールもあります aptitude または Synaptic タイプのグラフィカル インターフェイス。

Debianの現在のすべてのバージョンでは、パッケージ apt 「重要」な優先度を持ち、つまり これはあらゆる基本システムのインストールの一部ですそして、dpkgがコアであることに変わりはないが、平均的なユーザーにとって日常的に使用する「パッケージマネージャ」はAPTであり、これも Flatpakなどの他のフォーマットと共存します 多くの現代の机の上。

APTの最も強力な機能の一つは パッケージのインストールとアンインストールを最適な順序で整理しますdpkg を起動する前に、競合を最小限に抑えるためにパッケージ リストのトポロジカル ソートを実行し、困難な場合にのみ、オプションを使用して内部 dpkg アクションを強制します。 --force 安全な代替手段が見つからない場合。

リポジトリとsources.listファイル

APTは常に 構成ファイルで宣言されたソフトウェアリポジトリメインファイルは /etc/apt/sources.listここではDebianまたはUbuntuの公式パッケージソースが定義されており、サードパーティのリポジトリを追加することもできます。 独自のソフトウェアリポジトリを作成する これは、APT をカスタム ソースにターゲットする方法を理解するのに役立ちます。

メインファイルに加えて、 追加ファイル /etc/apt/sources.list.d/ 特定のリポジトリ用。これらのポイントは、ローカルディレクトリや物理メディア(CD/DVDなど)だけでなく、HTTP、HTTPS、FTP経由でアクセス可能なリモートサーバーも参照できます。

APTはまた、 これらのリポジトリで利用可能なすべてのパッケージに関する情報のローカルキャッシュ主に以下の場所に保管されています /var/lib/apt/ そして、使い慣れたコマンドを使って更新されます apt update o apt-get update.

便利なフォント編集のために、スイート自体には コマンド apt edit-sourcesデフォルトのターミナルテキストエディタでメインファイルを開きます sources.list または指定したファイル。エディタが設定されていない場合は、エディタ(nano、vim、neovimなど)を選択するように求められ、それ以降は常にそのエディタが使用されます。

パッケージの依存関係と状態管理

dpkgとの大きな違いはAPT 依存関係の解決とダウンロードを自動的に処理します。パッケージのインストールを要求すると、他に必要なパッケージ、互換性のあるバージョン、そしてどのような競合が発生する可能性があるかを計算し、その後dpkgを呼び出して変更を適用します。診断およびデバッグタスクについては、 パッケージの依存関係を一覧表示する 何かをインストールするときにシステムが壊れないようにします。

APTは追加のファイルも管理しており、 /var/lib/apt/extended_statesパッケージがユーザーによって明示的にインストールされたか、他のパッケージの依存関係としてインストールされたかを記録します。この情報は、次のような機能にとって重要です。 apt autoremove これにより、どのパッケージが「孤立」しているために削除の候補となるかがわかります。

状態に関しては、興味深いニュアンスがあります。APTは、 apt list --installed, 「deinstall」とマークされたパッケージをスキップする (アンインストールされたが設定が保持されているもの)。これらは、 apt list 「residual-config」など、 dpkg --get-selections はい、直接表示されます。リストが一致しない場合は、元の出力を確認し、以下のフィルターを適用することをお勧めします。 grep それらの境界線上のケースを分析します。

日常的に使用する基本的なaptコマンド

近代的なコマンドの到来により aptDebianとUbuntuは 一般的なパッケージ管理タスクのための、よりユーザーフレンドリーなインターフェースこれまで分割されていた機能を統合し、 apt-get y apt-cache内部的には同じライブラリを使用していますが、構文がより便利で、出力がより読みやすくなっています。さらに、デスクトップ上の他の形式と共存します。 LinuxでAppImageを管理する.

ファイル /etc/apt/sources.list 先ほど述べたように、デフォルトで集中します apt が使用するすべてのリポジトリに関する情報のようなツールとは異なり、 yum 通常、複数の設定ファイルを処理します。これにより、経験の浅いユーザーの初期設定が大幅に簡素化されます。

リポジトリ情報を更新する

何かをインストールする前に、APTは リポジトリパッケージの更新されたリスト 利用可能なバージョンを確認するには、以下を使用します。

  • apt update: 構成されたすべてのリポジトリからパッケージ インデックスを再度ダウンロードします。

旧型との違い apt-get update つまり aptは非常に役立つ追加情報を表示します更新できるパッケージの数や実行を推奨するメッセージなど apt list --upgradable 詳細を確認します。

リポジトリ内のパッケージを検索する

利用可能なプログラムやライブラリを見つけるには、 APTの組み込み検索を使用する伝統的に、これは apt-cache searchしかし、コマンド apt 構文を簡素化する:

  • apt search nombre o apt-cache search nombre: ダウンロードしたパッケージのデータベースで指定されたテキストを検索します。

こうすれば簡単だ 特定のアプリケーションに対応するパッケージを確認する (たとえば、「gimp」、「vlc」、「libreoffice」を検索して)、ディストリビューションのバージョンで利用できるかどうかを確認します。

apt でパッケージをインストールおよびアンインストールする

APTで実行する最も一般的な操作は リポジトリからソフトウェアをインストールおよび削除するここでの構文は非常に簡単です:

  • apt install paquete: 要求されたパッケージと依存関係として必要なものすべてをインストールします。
  • apt remove paquete: パッケージをアンインストールしますが、構成ファイルは保持します。
  • apt remove --purge paquete o apt purge paquete: パッケージとそのシステム構成ファイルも削除します。
  Windows 10 用カーソルをダウンロードしてインストールする方法

使用する場合のみ remove, 「残り」は設定ディレクトリまたは設定ファイルの形で残る可能性があるこれは正常な動作であり、アプリを再インストールしても設定は保持されます。完全に削除したい場合は、パージオプションを選択してください。

部門を整理し、残ったパッケージを取り除く

アプリケーションを時間の経過とともにインストールしたりアンインストールしたりすると、 他のパッケージの依存関係としてインストールされたが、不要になったパッケージスペースを解放し、システムをクリーンな状態に保つために、APT は次の機能を提供します。

  • apt autoremove: 現在インストールされているパッケージで不要になった、自動的にインストールされた依存関係を削除します。

この順序は特に次の場合に便利です 定期的なメンテナンス措置現在のシステムに何も貢献せずにスペースを消費するだけの古いライブラリとファイルを削除するためです。

aptでイ​​ンストールしたパッケージを更新する

リポジトリのインデックスが最新になったら、次のステップは インストールされたパッケージに利用可能な更新を適用するAPT は 2 つの更新レベルを区別します。

  • apt upgrade: 追加のパッケージを大幅にインストールまたは削除する必要がない限り、インストールされているパッケージを最新バージョンに更新します。
  • apt full-upgrade: より積極的なアップデートを実行し、プロセスを完了するために必要な場合にパッケージをインストールまたは削除できます(古い apt-get dist-upgrade).

最初に走るのが一般的です apt update 続いて apt upgrade 定期メンテナンスの一環として、予備として full-upgrade メジャーバージョンの変更やカーネルお​​よび重要なコンポーネントの更新があった場合。

aptスイートのその他の便利なコマンド

最も人気のある注文に加えて、APTには以下が含まれます 生活を楽にするいくつかの追加コマンド:

  • apt show paquete: パッケージに関する詳細情報 (説明、バージョン、依存関係、ソース リポジトリなど) を、順序付けられた出力と無関係なデータのない状態で表示します。
  • apt list: さまざまなフィルターに従ってパッケージをリストします。 --installed インストールされ、 --upgradable アップデートが利用可能なもの。
  • apt edit-sources: APT ソース ファイルを開いてリポジトリを変更します。

これらすべてが aptはパッケージ管理の「スイスアーミーナイフ」のようなものです膨大な数のサブコマンドを覚える必要がなく、平均的なユーザーが日常的に実行するタスクのほとんどをカバーします。

Apt-get と aptitude: 他の古典的な APT フロントエンド

コマンドですが、 apt 近年注目を集めている apt-getとaptitudeは依然として非常に重要なツールである Debianエコシステムにおける、それぞれの用途があり、どのような状況でそれらを使用するのが適切かを知ることは重要です。

歴史的に、 apt-get だった APTの最初のコマンドラインフロントエンド90 年代後半から存在し、無数のスクリプトやドキュメントで取り上げられてきたこの言語は、自動化や非対話型タスクに最適な、安定した予測可能なインターフェイスを提供するように設計されています。

その部分については、 aptitude として生まれた インタラクティブな環境を好むユーザーにとって、よりスマートで便利な代替手段スクリプト互換の CLI モードと、メニュー、フィルター、整理されたパッケージ ビューを備えたテキスト モード インターフェイス (ncurses) の両方を提供します。

典型的なapt-getの機能とコマンド

とともに apt-get 実質的に同じタスクを実行できます aptただし、構文がやや冗長で、出力もユーザーフレンドリーではありません。最もよく使われるコマンドは以下のとおりです。

  • apt-get update: リポジトリのインデックスを更新します。
  • apt-get upgrade: 過度に煩わしい変更を加えずに、インストールされたパッケージを更新します。
  • apt-get dist-upgrade:同等 apt full-upgrade 最新のもので、パッケージをインストールおよび削除して複雑なアップグレードを完了できます。
  • apt-get install paquete: 依存関係を解決してリポジトリからパッケージをインストールします。
  • apt-get remove paquete y apt-get purge paquete設定ファイルの有無にかかわらず、パッケージを削除します。

apt-getの主な利点は バージョン間での動作は非常に安定していますこのため、Debian開発者は スクリプトや自動化で引き続き使用してくださいとして apt これはよりエンドユーザー指向であり、時間の経過とともに出力の詳細やデフォルト値を変更できます。

Aptitude: ncurses インターフェースと高度な依存関係解決

aptやapt-getとは異なり、 aptitude 貢献する 非常に完全なテキストモードインターフェース 実行するだけで起動します sudo aptitude 引数なし。この画面から以下の操作が可能です。

  • パッケージ カテゴリ (インストール済み、使用可能、廃止など) 別に参照します。
  • さまざまな基準を使用してパッケージを検索およびフィルタリングする (名前、説明、ステータス)。
  • 複数のパッケージを選択してインストール、更新、または削除し、すべての変更を一度に適用します。

その最大の技術的強みは スコアと代替案に基づく依存関係解決システム複雑な競合がある場合、aptitude は通常、複数の解決策 (パッケージのアンインストール、古いバージョンを保持する、追加のバージョンをインストールするなど) を提示し、次回の解決試行でどの部分を保持または破棄するかをユーザーがマークできるようにします。

コマンドラインの観点から見ると、 aptitude 次のようなコマンドもサポートされています。

  • aptitude update: パッケージリストを更新します。
  • aptitude install paquete y aptitude remove paquete: apt-get と同様の方法でパッケージをインストールおよび削除します。
  • aptitude full-upgrade: 独自の依存関係解決ロジックを使用して完全な更新を実行します。
  Adobe Web 用保存エラーを修正

さらに適性 どのパッケージが手動でインストールされ、どのパッケージが依存関係としてインストールされたかを詳細に記録します。バージョンを凍結したり、パッケージにマークを付けて更新を防止したりするオプションがあります。これらの機能の一部は、現在では apt-markしかし、適性は長年にわたって使用してきた管理者によって依然として高く評価されています。

dpkg、APT、apt-get、apt、aptitude の主な違い

各ツールを個別に確認した後、集合写真を撮ると理解しやすくなります。 それらの違いは正確には何ですか?また、それぞれをいつ使用するのが適切ですか?これを低、中、高の 3 つのレベルにまとめることができます。

最も基本的なレベルでは dpkg はローカルの .deb パッケージに直接作用します。依存関係を解決したり、リポジトリと通信したりはせず、特定のパッケージをインストール、アンインストール、または情報を表示するだけです。よく比較されます。 Red Hatの世界におけるRPMこれらは、それぞれの分布ファミリーで同様の機能を果たすためです。

中級・上級レベルでは リポジトリ、情報キャッシュ、自動依存関係解決を備えたパッケージ管理システムとしての APTこれは、何がどこからインストールされるか、どのバージョンが最適かなどのロジックを提供します。Red Hatの世界では、並列処理は次のようなツールで行われます。 RPM 上で実行される YUM または DNF.

上記のAPTは さまざまなフロントエンド:

  • apt-get: スクリプトと自動化を重視した、クラシックで堅牢かつ安定したインターフェース。
  • apt: apt-get と apt-cache の機能を統合し、より明確な出力を提供する最新のエンドユーザー インターフェイス。
  • aptitude: オプションの TUI ncurses と特に洗練された依存関係解決システムを備えた高レベルのパッケージ マネージャー。

APTとDPKGを比較すると、根本的な違いは次のようになります。 APT は、リモート リポジトリからパッケージを取得し、複数のソースを管理し、すべての依存関係を処理できます。一方、DPKG はローカル ファイルとして渡されたパッケージのみをインストールおよび削除します。

aptとapt-getを比較すると、どちらも パッケージのインストール、更新、削除に非常によく似た機能しかしaptは情報の表示を改善し、インストール中にプログレスバーを組み込み、以前は apt-get y apt-cache対照的に、apt-get は時間の経過とともにより保守的で安定したコマンドライン API を提供します。

適性に関しては、その主な特徴は ncursesインターフェースと高度な依存関係の競合処理apt と apt-get は一度に「最善の」解決策を見つけようとしますが、aptitude ではユーザーが対話的にプロセスに参加し、どのパッケージを保持するか、どのパッケージを降格するか、どのパッケージを削除するかを決定できます。

Debian システムで dpkg、apt、apt-get、aptitude を使用するタイミング

違いが明らかになると、多くの人が尋ねる疑問は それぞれの特定の状況でどのコマンドを使用するか唯一の正解はありませんが、多くの管理者や上級ユーザーが従う、かなり合理的なパターンが存在します。

デスクトップや軽量サーバーシステムでの日常的な使用の場合、最も便利なオプションは通常 コマンドを使用 apt ほとんどすべてのもの: リポジトリの更新、アプリケーションの検索、パッケージのインストールとアンインストール、更新可能なものの確認、定期的な更新のリリースを行います。

を扱う場合 インストール、展開、またはメンテナンスのスクリプトをスケジュールする公式文書自体も、 apt-get (y apt-cache (クエリ用)出力動作とオプションは、 aptこれは人間向けに設計されており、機械向けではないため、細かい部分が変更される可能性があります。

dpkgは主に 手動でダウンロードした .deb パッケージによる低レベル操作コンテンツの検査や、非常に細かい制御が必要で、APTによる依存関係の解決による干渉を避けたい場合に便利です。また、高度なパッケージングスクリプトや、.deb ファイルの特定の問題のデバッグにも非常に便利です。

一方、適性は次のような場合に発揮されます。 非常に複雑な依存関係の衝突に直面している 古い環境や高度にカスタマイズされたDebian環境では、問題が発生することがあります。Debianの解決エンジンは通常、より多くの選択肢を提供し、ncursesインターフェースは、主要な操作を実行する前にどのような変更が行われるかを確認するのに非常に便利です。

結局のところ、このツールのエコシステム全体が存在するのは 各レベルはDebianのパッケージ管理における異なる問題を解決しますdpkg は低レベルのギア、APT は何をどこからインストールするかを決定する頭脳、そしてさまざまなフロントエンド (apt、apt-get、aptitude) は、最も初心者から端末に釘付けになっている管理者まで、さまざまなユーザー プロファイルに適応した目に見える顔です。

コマンドなしでdebおよびrpmパッケージをインストールする
関連記事
DEB および RPM パッケージを簡単にインストールするための完全ガイド