web-dev-qa-db-ja.com

dpkgとaptitude / apt-getの違いは何ですか?

dpkg -i packageA.debを介してソフトウェアをインストールする場合、packageAに必要な依存関係は自動的にダウンロードおよびインストールされますか?これは、apt-getまたはaptitudeを使用することとどのように違いますか?

123
Aniket Thakur

いいえ、dpkgはパッケージのみをインストールするため、dpkg -i packageName.debを実行するとこのDebパッケージのみがインストールされ、インストールが必要な依存関係があれば通知されますが、notそれらをインストールすると、notpackageName.debを構成します。

apt-getパッケージ管理システム で、Debパッケージのインストールを DebianベースのLinuxディストリビューション で処理します。パッケージ管理システムは、パッケージのインストール、削除、変更を簡単に行うのに役立つツールのセットです。 apt-getは、賢いdpkgのようなものです。

私はタイムラインをこのように考えるのが好きです(以下は私が経験から話しているだけです。これはあなたにこの全体のアイデアを与えることを意図しています):

  • 彼らは、アプリケーションのファイルを「パッケージ」に「格納」して、簡単にインストールできるようにする方法を考え出しました。そのため、Debパッケージ( .deb拡張ファイル )が生まれました。

    .debファイルには、アプリケーションの実行に必要なファイルと、(それを呼び出すのが好きです)「メタデータ」が含まれます。アプリケーションが必要とする依存関係。 .debファイルの内容を表示する場合は、コマンドdpkg -c packageName.debを使用できます。この「メタデータ」情報を表示する場合は、コマンドdpkg -I pacakgeName.debを使用します(依存関係のみを表示する場合は、dpkg -I packageName.deb | grep Dependsを実行します)。

  • これらの.debファイルをインストールするためのツールが必要だったため、dpkgツールを思いつきました。ただし、このツールは.debファイルのみをインストールしますが、これらのファイルがなく、依存関係を取得するための「リポジトリ」へのアクセス権がないため、依存関係をインストールしません。

  • その後、彼らはapt-getを思いつきました。これは前のポイントの問題を自動化します。ボンネットの下では、apt-getは基本的にdpkgです(apt-getdpkgのフロントエンドであると考えています)が、依存関係を探してインストールする賢いものです。さらに、現在インストールされている依存関係を調べて、他のパッケージで使用されていない依存関係を特定し、それらを削除できることを通知します。

aptitudeが登場しました。 ライブラリapt-get使用 を使用し、実際にはインタラクティブUI(ユーザーインターフェイス)を備えています。このUIを表示するには、ターミナルでaptitudeと入力するだけです。 それはaptitude。ライブラリを活用して、apt-getよりも多くのオプションと特典を提供します。たとえば、aptitudeは適格なパッケージを自動的に削除しますが、apt-getを実行するには別のコマンドが必要です。しかし、最終的に、Sudo aptitude install packageName.debの実行は、少なくとも /Sudo apt-get install packageName.debと同じである必要があります。あちこちで微妙な違いがあるかもしれませんが、それらは依存関係を探し、そのすべてを行います。 aptitudeapt-getの違いの詳細については、 こちらの回答 をご覧ください。

また、aptitudeにはSuper Cow Powersがありません。

編集:どうやら、それは。 aptitude -v[v[v[v[v]]]] moo

aptitudeはデフォルトではインストールされない場合があります。それをインストールするには、Sudo apt-get install aptitudeを実行するか、これをクリックします。 aptitude Install aptitude


追加

次の情報は、「 dpkgとaptitude/apt-getの違いは何ですか?」とは直接答えていませんが、全体像に貢献しています。


From CarlosCampderrós ' 以下のコメント

gdebiは、apt-getaptitudeを組み合わせた別のツールです。これを使用して.debパッケージ(gdebi packageName.deb)をインストールすると、欠落している依存関係を識別し、apt-getを使用してそれらをインストールし、最後にdpkgを使用してパッケージをインストールおよび構成します。さらに、.debパッケージ、パッケージに含まれるファイル、およびインストールする必要のある依存関係について 情報を提供するシンプルで洗練されたGUI があります。このGUIを表示するには、gdebi-gtk packageName.debを実行します。 Sudo apt-get install gdebiでインストールすることでgdebiを試してみるか、これをクリックしてください: gdebi Install gdebi


誰も混乱させたくありませんが、写真の別の部分を示すために、RPMと呼ばれる別の一般的なLinuxパッケージ形式があり、そのファイルには.rpm拡張子が付いています。このパッケージ形式は RPMベース Linuxディストリビューション (Red Hat、CentOS、Fedoraなど)で使用されます。彼らはコマンドrpmを使用してパッケージをインストールします。yumはそのフロントエンドであり、賢いものです。したがって、それらの.rpmファイルは.debファイル、rpmツールはdpkgツール、yumapt-getファイルです。

Paddy Landa下のコメント から:

alienは、.rpmパッケージと.debパッケージを変換するツールです。したがって、.rpmパッケージがあり、Ubuntu(または他のDebianベースのディストリビューション)にインストールしたい状況に陥った場合、コマンドalien rpm_packageName.rpmを使用して.debに変換してからインストールできます。 dpkgを使用します。 .debを使用して、逆(.rpmalien -r packageName.debに変換)を行うことができます。

167
Alaa Ali

apt-get

apt-getを介したパッケージ管理は、/etc/apt/sources.listファイルと連携して実行されます。

apt-get install <package_name>は、新しいパッケージをコンピューターにインストールします。

apt-get build-dep <package_name>このコマンドは、リポジトリを検索し、ビルドの依存関係をインストールします。パッケージがリポジトリにない場合、エラーが返されます。

apt-get install <package1_name> <package2_name> <package3_name> apt-getでは、複数のパッケージをインストールできます。パッケージをスペースで区切ります。

auto-apt run <command_string>呼び出されると、auto-aptコマンドは、ファイルへのアクセスがない場合にパッケージを自動的にインストールします。プログラムがアンインストールされたパッケージに属することが知られているファイルにアクセスしようとすると、auto-aptはapt-getを使用してそのパッケージをインストールします。この機能を使用するには、aptとSudoが必要です。

apt-getの指示ページにアクセス

aptitude

aptitudeは、dselectおよびapt-getの機能と、どちらのプログラムにも見られない多くの追加機能を提供します。

aptitudeには、キーボードまたはマウスをアクティブにしてターミナルウィンドウで実行する独自のシェルがあります

aptitude build-dep <package>-パッケージのビルド依存関係をインストールします-これは、ソースパッケージのコンパイル(またはbuild)に必要なパッケージを意味します。たとえば、多くのパッケージはdebhelperまたはautotoolsをビルドする必要がありますが、実行する必要はありません。

aptitudeの指示ページにアクセス

dpkg

debianパッケージをインストール、ビルド、削除、管理するツールです。 リンク

dpkg -i <package.deb>は、Debianパッケージをコンピューターにインストールします。ヘルプファイルから確認できる限り、依存関係はインストールされません。

詳細については、dpkg --helpをターミナルウィンドウに入力してください。

ガイド

ファイル管理のガイドを見つけることができます here

5
SimplySimon

最も重要なことと違いは、パッケージをインストールするためにapt-getツールを使用する必要があることです。 (aptまたはaptitudeも同様です)。

これは、dpkgが依存パッケージをインストールせずにパッケージをインストールすることを意図しているためです。そのため、dpkgを指定してパッケージをインストールするだけで、依存関係の解決が壊れたシステムになるという後の問題につながる可能性があります。

パッケージをインストールするには、コマンドラインapt-getまたはapt(14.04以降)ツールを使用する必要があります。これらのツールはdpkgを使用しており、同時に内部に依存関係解決メカニズムがあります。

0
prosti