Advanced Package Tool ( APT ) は、Debianおよび Debian ベースのLinux ディストリビューション上でソフトウェアのインストールと削除を処理するためにコアライブラリと連携するフリーソフトウェアのユーザーインターフェイスです。[ 4 ] APT は、プリコンパイルされたファイルから、またはソースコードをコンパイルすることによって、ソフトウェア パッケージの取得、構成、およびインストールを自動化することにより、 Unix ライクなコンピュータ システムでのソフトウェア管理プロセスを簡素化します。[ 4 ]
APT はaptという名前のパッケージで配布されるツールの集合です。APT の大部分はC++関数ライブラリで定義されています。APT には、このライブラリを使用するパッケージを扱うためのコマンドライン プログラムも含まれています。そのようなプログラムの 3 つはapt、、apt-getおよびですapt-cache。これらはシンプルで普及しているため、例でよく使用されます。aptパッケージは、現在のすべての Debian リリースで「重要」な優先度であるため、デフォルトの Debian インストールに含まれています。APT は、古いフロントエンドよりも使いやすい のフロントエンドと考えることができます。は個々のパッケージに対してアクションを実行しますが、APT はパッケージ間の関係 (特に依存関係) を管理するほか、リリース追跡やアップグレード抑制などの上位レベルのバージョン管理決定のソースと管理も行います。dpkgdselectdpkg
APTはDebianの最も優れた機能の1つとしてよく称賛されており、[ 5 ] [ 6 ] [ 7 ] [ 8 ] Debianの開発者はこれをDebianのポリシーにおける厳格な品質管理によるものだと考えている。[ 9 ] [ 10 ]
APT の重要な特徴は、その呼び出し方法ですdpkg。インストールまたは削除するパッケージのリストをトポロジカルソートし、dpkg最適な順序で呼び出します。場合によっては、--forceオプションを使用します。ただし、これは、強制的なアクションが必要となるdpkg理由を回避する方法を計算できない場合にのみ行われます。dpkg
ユーザーはインストールするパッケージを 1 つ以上指定します。各パッケージ名は、完全修飾ファイル名ではなく、パッケージ名の部分のみで指定します (たとえば、Debian システムでは、libc6引数として が指定され、 は指定されません)。特に、APT は指定されたパッケージが依存するパッケージを自動的に取得してインストールします (必要な場合)。これは、依存関係の不足によるインストール失敗、いわゆる依存関係地獄libc6_1.9.6-2.debを回避するため、APT ベースのパッケージ管理システムの本来の特徴でした。
もう一つの違いは、リモートリポジトリからのパッケージの取得です。APT は、位置設定ファイル ( /etc/apt/sources.list) を使用して、ネットワーク上やリムーバブルストレージメディアなどに存在する目的のパッケージを特定し、それらを取得するとともに、利用可能な (ただしインストールされていない) パッケージに関する情報も取得します。
APTには、apt-getの競合解決システムによる決定を上書きするためのコマンドオプションが他にも用意されています。その一つとして、特定のバージョンのパッケージを強制的に使用するオプションがあります。ただし、これによりパッケージのバージョンがダウングレードされ、依存するソフトウェアが動作しなくなる可能性があるため、ユーザーは注意が必要です。
最後に、このapt_preferences仕組みにより、ユーザーは個々のパッケージに対して代替のインストールポリシーを作成することができます。
ユーザーはPOSIX正規表現を使用してパッケージを指定できます。
APTはキャッシュされたパッケージリストを検索し、インストールまたは更新が必要な依存関係を一覧表示します。
APTは依存関係を自動的に取得、設定、インストールします。
トリガーとは、延期された行動に対する対処方法のことである。
インストール済みパッケージの更新を容易にする使用モードにはapt、以下が含まれます。apt-get
updateは、パッケージインデックスファイルをソースから再同期するために使用されます。利用可能なパッケージのリストは、で指定された場所から取得されます/etc/apt/sources.list。たとえば、Debianアーカイブを使用する場合、このコマンドはファイルを取得してスキャンしPackages.gz、新規および更新されたパッケージに関する情報を取得します。upgradeは、に列挙されたソースから、システムに現在インストールされているすべてのパッケージの最新バージョンをインストールするために使用されます/etc/apt/sources.list。新しいバージョンが利用可能なパッケージは取得され、アップグレードされます。いかなる場合でも、現在インストールされているパッケージが削除されたり、まだインストールされていないパッケージが取得されてインストールされたりすることはありません。他のパッケージのインストール状態を変更せずにアップグレードできない、現在インストールされているパッケージの新しいバージョンは、現在のバージョンのままになります。full-upgrade(apt)とdist-upgrade(apt-get)は、 の機能に加えてupgrade、パッケージの新しいバージョンによる依存関係の変更もインテリジェントに処理します。aptまた、apt-getと は「スマート」な競合解決システムを備えており、必要に応じて重要度の低いパッケージを犠牲にして最も重要なパッケージをアップグレードしようとします。 ファイルには、/etc/apt/sources.list目的のパッケージ ファイルを取得する場所のリストが含まれています。[ 4 ] aptitude にdist-upgradeは、 と呼ばれるよりスマートな機能がありますfull-upgrade。[ 11 ]/etc/aptAPTの設定フォルダとファイルが含まれています。
apt-configAPT構成クエリプログラムです。[ 12 ]apt-config dumpは構成を示します。[ 13 ]
/etc/apt/sources.list[ 14 ]パッケージを取得する場所。/etc/apt/sources.list.d/: 追加のソースリスト断片。/etc/apt/apt.conf: APT設定ファイル。/etc/apt/apt.conf.d/: APT設定ファイルの断片。/etc/apt/preferences.d/バージョン設定ファイルが格納されているディレクトリ。ここでは「ピン留め」、つまり特定のパッケージを別のソースまたは別のバージョンのディストリビューションから取得する設定を指定します。/var/cache/apt/archives/取得したパッケージファイルの保存領域。/var/cache/apt/archives/partial/輸送中の荷物ファイルの保管場所。/var/lib/apt/lists/: 各パッケージリソースの状態情報を格納する領域sources.list/var/lib/apt/lists/partial/: 輸送中の国家情報の保管場所。APTは、ソフトウェアの検索と依存関係の解決にリポジトリの概念を利用します。APTにとって、リポジトリとはパッケージとインデックスファイルを含むディレクトリのことです。これはネットワーク上の場所、またはCD-ROMの場所として指定できます。2021年8月14日現在 、Debianプロジェクトは、ダウンロードとインストールが可能な5万以上のソフトウェアパッケージを中央リポジトリに保持している。[ 15 ]
APT のsources.list設定ファイル ( /etc/apt/sources.list)には、任意の数のリポジトリを追加でき、APT がそれらを照会できます。グラフィカル フロントエンドを使用すると、より簡単に変更できる場合が多くあります ( )。パッケージ リポジトリが指定されると (システムのインストール時など)、そのリポジトリ内のパッケージはソースを指定せずにインストールでき、自動的に最新の状態に保たれます。sources.listapt-setup
ネットワークリポジトリに加えて、[ 16 ]を使用するか、ソースリストファイルにURI [ 17 ]を追加することで、コンパクトディスクやその他のストレージメディア (USB キードライブ、ハードディスクなど) も使用できます。オプションを使用すると、CD-ROM 以外のフォルダ(ハードディスクや USB キードライブなど) を指定できます。ダウンロード可能な Debian CD には Debian リポジトリが含まれています。これにより、ネットワークに接続されていないマシンをアップグレードできます。また、 を使用することもできます。apt-cdromfile:/apt-cdrom-dapt-zip
複数のソースが同じパッケージを提供している場合、問題が発生する可能性があります。このような競合する可能性のあるソースが存在するシステムでは、APTピンニングを使用して、優先するソースを制御できます。
APTのピン留め機能を使用すると、異なるリポジトリから異なるバージョンで入手可能なパッケージの中から、特定のバージョンを選択するようにAPTを強制できます。これにより、管理者は、システム上の他のパッケージと競合する可能性のあるバージョンや、望ましくない変更が十分にテストされていないバージョンにパッケージがアップグレードされないようにすることができます。
これを行うには、 APT の設定ファイル ( )のピンを変更する必要がありますが、[ 18 ]グラフィカル フロントエンドを使用するとピン留めが簡単になることがよくあります。/etc/apt/preferences

APTには他にもいくつかのフロントエンドが存在し、より高度なインストール機能とより直感的なインターフェースを提供しています。これらには以下が含まれます。
APTフロントエンドは以下のことが可能です。
APT のフロントエンドは、インストールまたはアップグレード中のパッケージの依存関係を一覧表示したり、新しくインストールされたパッケージによって推奨または提案されたパッケージもインストールする必要があるかどうかを管理者に問い合わせたり、依存関係を自動的にインストールしたり、古いファイルやパッケージを削除するなど、システム上で他の操作を実行したりできます。
apt-getこのプログラムにつながった最初の取り組みは、dselectコードネームDeityとして知られる代替プロジェクトでした。[ 24 ]このプロジェクトは、当時 Debian リリース マネージャーであった Brian White によって 1997 年に委託されました。 の最初の機能バージョンはapt-getと呼ばれdpkg-get、新しいユーザー インターフェイス (UI) を支えるコア ライブラリ機能のテスト プログラムとしてのみ意図されていました。[ 25 ]
APTの初期開発の多くはインターネットリレーチャット(IRC)上で行われたため、記録が失われています。「Deity Creation Team」のメーリングリストアーカイブには、主要な内容のみが残されています。
「Deity」という名前は、その名前の宗教的な性質に対する懸念から、プロジェクトの正式名称としては放棄された。APTという名前は、内部および公開でのかなりの議論を経て最終的に決定された。最終的に、その名前はIRCで提案され、承認され、メーリングリストで最終決定された。[ 26 ]
APTは1998年に導入され、最初のテストビルドはIRCで配布されました。APTを含む最初のDebianバージョンは、1999年3月9日にリリースされたDebian 2.1でした。[ 27 ]
結局、Deity プロジェクトの当初の目標であったdselectユーザー インターフェースの置き換えは失敗に終わった。 の最初の公開リリース後、プロジェクトのユーザー インターフェース部分の開発は中止された (ユーザー インターフェース ディレクトリは同時実行バージョン システムapt-getから削除された) 。 APT をメソッドおよびコマンドライン ユーティリティとして利用した場合の反応はdselect非常に大きく肯定的であったため、すべての開発努力はツールの保守と改善に集中した。 の上にユーザー インターフェースを構築したのは、ずっと後のことであったlibapt-pkg。
最終的に、新しいチームがプロジェクトを引き継ぎ、新機能の構築を開始し、強力な暗号署名を使用してパッケージリポジトリを認証するセキュアAPT機能を導入したAPTバージョン0.6をリリースしました。[ 28 ]
APT は元々 、 Debian のパッケージを扱うためのdpkgのフロントエンドとして設計されました。RPMパッケージマネージャシステム.debでも動作するように変更された APT のバージョンがAPT-RPMとしてリリースされました。[ 29 ] Finkプロジェクトは、独自のパッケージ管理タスクの一部のためにAPT をMac OS Xに移植しており、 [ 30 ] OpenSolarisでも APT が利用可能です。
apt-fileは、APT とは別にパッケージ化されたコマンドで、特定のファイルを含むパッケージを検索したり、リモートリポジトリ上のパッケージに含まれるすべてのファイルを一覧表示したりします。[ 31 ]
-aptはHavoc Penningtonによって作成されました。