Linuxにおけるaptとapt-getの違いとは?

  • apt-getとaptはどちらもDebianパッケージ管理システム内のツールです。
  • apt-getはdpkgに対するフル機能のインターフェースですが、aptはapt-getの機能を少し削ったユーザーフレンドリーなバージョンです。
  • aptとapt-getには、install、remove、purge、update、upgrade、autoremoveなど共通のコマンドがありますが、aptにはsearch、show、list、edit-sourcesなどの追加コマンドもあります。

DebianベースのLinuxディストリビューションにはaptapt-getの両方があるのはなぜですか?aptapt-getを置き換えたのでしょうか?それとも異なる目的があるのでしょうか?この2つのコマンドの関係を説明します。

Debianパッケージ管理システム

Linuxディストリビューションを作成する際の主要な取り組みは、パッケージ管理システムを設計して作成することです。ユーザーには、ソフトウェアパッケージをインストールおよびアンインストールする方法が必要です。そのためには、ソフトウェアリポジトリからパッケージファイルを取得し、ユーザーのコンピュータに正しくインストールするためのソフトウェアが必要です。

これは簡単な作業ではありません。ソフトウェアエンジニアリングを別にしても、ソフトウェアリポジトリのホスティングには時間、労力、費用がかかります。これが、「新しい」Linuxディストリビューションの多くが既存のLinuxディストリビューションから派生している理由の1つです。

これにより、Debianベースのディストリビューション、Red Hatベースのディストリビューション、Archベースのディストリビューションなどの、Linuxディストリビューションのファミリーまたは系統が生まれます。

UbuntuとすべてのUbuntu派生ディストリビューションを含む、Debianファミリーのディストリビューションは、Debianパッケージマネージャーを使用します。これは、DEBファイルと呼ばれる「.deb」ファイル拡張子のパッケージファイルを使用します。DEBファイルは、他のアーカイブファイルを含む圧縮ファイルです。アーカイブファイルには、アプリケーションの実行可能ファイル、マニュアルページ、ライブラリなどが含まれています。

DEBファイルからソフトウェアをインストールするには、これらのコンポーネントファイルをすべて解凍して、コンピュータの正しい場所に配置する必要があります。また、オペレーティングシステムとデスクトップ環境と対話して、アプリケーションがアプリケーション検索に表示され、そのアイコンをドックまたはシステムメニューに追加できるようにする必要があります。

apt-getaptコマンドはどちらもそれを行います。しかし、なぜ同じことをするコマンドが2つあるのでしょうか?

コマンドチェーン

実際にインストールを実行するパッケージはdpkgと呼ばれます。実際には、dpkg-splitdpkg-triggerdpkg-divertを含むコマンドのファミリーです。これらは、Advanced Package Toolスイート(APT)のツールによって、必要に応じて呼び出されます。APTは、apt-getapt-cacheaptを含む別のツールの集まりです。

dpkgコマンドは低レベルコマンドとみなされます。最も単純な操作を超えると、非常に多くのオプションが複雑になります。apt-getコマンドは、dpkgコマンドスイートのフロントエンドとして機能します。これは、問題を大幅に簡素化します。apt-getは、ユーザー向けの低レベルのバックグラウンドコマンドではなく、ユーザー向けのコマンドとして設計されています。それでも、人間が直面する役割にもかかわらず、ユーザーに情報を表示するためにapt-cacheという別のコマンドが使用されました。

aptコマンドは、よりアクセスしやすくユーザーフレンドリーなコマンドラインツールを介してdpkgと「会話」する別の方法を提供します。apt-getの機能のサブセットを提供しますが、大きなサブセットであり、一般的に使用されるすべての機能を提供し、apt-cacheの機能も含まれています。

ここでLinux Mintに特別に言及する必要があります。Linux Mintのメンテナーは、apt-getのPythonラッパーである独自のバージョンのaptを開発しました。それは私たちがここで話しているaptではありません。私たちは、2014年にリリースされ、2016年にUbuntu 16.04に含まれたときにユーザーバースで注目と支持を集めた、メインストリームのDebianaptについて言及しています。

aptとapt-getの違い

つまり、dpkgは低レベルのバックグラウンドアプリケーションです。apt-getコマンドは、dpkgに対するフル機能でありながら簡略化されたインターフェースであり、aptapt-getのよりユーザーフレンドリーでありながら機能が少し削られたバージョンです。

しかし、apt-getaptは、dpkgへの簡単なインターフェース以上のものを提供します。dpkgが行わないことを行います。リポジトリからファイルを検索し、不足している依存関係や競合の解決を支援しようとします。

一方で、aptコマンドはapt-getが行わないことを行います。インストール中に平均的なユーザーが見たいと思うタイプの情報をより多く提供し、apt-getが表示する不明瞭な情報を一部抑制します。aptは優れた視覚的なフィードバックを提供し、ターミナルウィンドウでカラーハイライトと進行状況バーを使用します。

aptapt-getの間にはいくつかの共通のコマンドがあります。これらのコマンドはすべてaptまたはapt-getの前に置くことができ、同じように動作します:

  • install packagename:パッケージをインストールします。
  • remove packagename:パッケージを削除(アンインストール)します。
  • purge packagename:パッケージとその設定ファイルを削除します。
  • updatepackagename:リポジトリ情報を更新します。
  • upgrade:すべてのパッケージを更新します。
  • autoremove:不要になったライブラリやその他のパッケージを削除します。

apt full-upgradeオプションはapt-get dist-upgradeオプションに置き換わりました。

aptの新しいコマンドは次のとおりです。

  • apt search:リポジトリでパッケージ名を探します。これはapt-cache searchと同じです。
  • apt show:パッケージに関する情報を表示します。これはapt-cache showと同じです。
  • apt list option:インストール済みまたはアップグレード可能なパッケージのリストを表示します。
  • apt edit-sources:aptがパッケージを検索するリポジトリのリストを直接編集します。

Aptを使用したアプリケーションのインストール

apt searchを使用して、リポジトリにパッケージがあるかどうかを確認したり、パッケージの正しい名前を確認したりできます。Scribusをインストールしたいが、パッケージ名がわからないとします。scribus-desktopを調べてみるかもしれません。

apt search scribus-desktop

その検索では何も見つかりませんでした。より短く、より一般的な検索手がかりで再試行します。

apt search scribus

これによりいくつかのヒットが返され、「scribus」という名前のものがあり、それが確かにScribusデスクトップパブリッシングアプリケーションのコアパッケージであることがわかります。apt showコマンドはより詳細な情報を提供します。

apt show scribus

インストールされる内容とソフトウェアの説明を含む、パッケージに関する情報ダンプを取得します。

また、ニーズに応じて必要な可能性のある他のパッケージも提案しています。

パッケージをインストールするには、sudoを使用する必要があります。

sudo apt install scribus

ファイルはリポジトリから取得されます。現在取得されているファイルは茶色で強調表示されています。

ファイルが取得されると、インストールされます。インストールの進行状況は、数字で表示されるパーセンテージと進行状況バーとして表示されます。

その他のコマンド

apt listapt edit-sourcesコマンドはaptのオプションであり、apt-getには存在しません。

apt listコマンドは、--installedまたは--upgradeableオプションとともに使用して、コンピュータにインストールされているパッケージとアップグレードできるパッケージを確認できます。

コンピュータにインストールされているアプリケーションのリストを表示するには、次を使用します。

apt list --installed

出力をスクロールすると、新しくインストールしたScribusアプリケーションの2つのエントリが表示されます。

インストールされているアプリケーションをアップグレードできるかどうかを確認するには、--upgradeableオプションを使用します。

apt list --upgradeable

aptコマンドは、aptがパッケージを検索するリポジトリに関する情報を編集する方法も提供します。何をやっているのかがわかっている場合にのみ、これを実行してください。

sudo apt edit-sources

このコマンドは、デフォルトのエディタを開き、リポジトリ情報を保持するファイルを読み込みます。

aptとapt-getのどちらを使用すべきですか?

apt-getコマンドは頻繁に更新されませんが、それは良いことです。下位互換性を維持する必要があります。下位互換性はaptにとってそれほど懸念事項ではありません。それはユーザー向けの命令として考えられ、扱われます。

日常的な使用にはaptを使用します。

パッケージのインストールに関連するスクリプトを作成する場合は、apt-getを使用します。これにより、スクリプトの移植性と互換性が最大限に高まります。