web-dev-qa-db-ja.com

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

ソフトウェアをインストールするための最小インストールに2つの異なるプログラムがある理由がわかりません。彼らは同じことをしませんか?大きな違いはありますか? apt-getではなくaptitudeを使用するためにどこでも読んだことがありますが、それでも違いがわかりません

56
Thomaschaaf

aptitudeはapt-get/apt-cacheと同じようにdpkgのラッパーですが、検索/インストール/削除/クエリのためのワンストップショップツールです。 aptが提供しないいくつかの例:

$ aptitude why libc6
i   w64codecs Depends libc6 (>= 2.3.2)
$ aptitude why-not libc6
Unable to find a reason to remove libc6.

$ aptitude show libc6
Package: libc6
State: installed
Automatically installed: no
Version: 2.9-4ubuntu6
Priority: required
Section: libs
Maintainer: Ubuntu Core developers <[email protected]>
Uncompressed Size: 12.1M
Depends: libgcc1, findutils (>= 4.4.0-2ubuntu2)
Suggests: locales, glibc-doc
Conflicts: libterm-readline-gnu-Perl (< 1.15-2), 
tzdata (< 2007k-1), tzdata-etch, nscd (< 2.9)
Replaces: belocs-locales-bin
Provides: glibc-2.9-1
Description: GNU C Library: Shared libraries
 Contains the standard libraries that are used by nearly all programs 
 on the system. This package includes shared versions of the standard 
 C library and the standard math library, as well as many others.
48
katriel
mikeage@linode ~$ aptitude -h | tail -n 1
              This aptitude does not have Super Cow Powers.
mikeage@linode ~$ apt-get -h | tail -n 1
                   This APT has Super Cow Powers.
mikeage@linode ~$ aptitude moo
    There are no Easter Eggs in this program.
mikeage@linode ~$ apt-get moo
         (__)
         (oo)
   /------\/
  / |    ||
 *  /\---/\
    ~~   ~~
...."Have you mooed today?"...
mikeage@linode ~$ aptitude -v moo
There really are no Easter Eggs in this program.
mikeage@linode ~$ aptitude -vv moo
Didn't I already tell you that there are no Easter Eggs in this program?
mikeage@linode ~$ aptitude -vvv moo
Stop it!
mikeage@linode ~$ aptitude -vvvv moo
Okay, okay, if I give you an Easter Egg, will you go away?
mikeage@linode ~$ aptitude -vvvvv moo
All right, you win.

                               /----\
                       -------/      \
                      /               \
                     /                |
   -----------------/                  --------\
   ----------------------------------------------
mikeage@linode ~$ aptitude -vvvvvv moo
What is it?  It's an elephant being eaten by a snake, of course. 
44
Mikeage

Debianインストーラ内で現在使用されている公式ツール リリースノートで推奨されていますaptitudeです。

Aptitudeはcursesインターフェース(パラメーターなしで実行された場合)とコマンドラインインターフェースを提供し、apt-cache/apt-getします。また、複数のソリューション間を参照できる、より優れた依存関係リゾルバーもあります。コマンドラインバージョンを使用している場合でも、提案されたソリューションを操作して、補足的な注文やヒントを与えることができます(別のパッケージが推奨するパッケージのインストールや削除など)。

しかし、aptitudeはlibaptライブラリ(dpkgの直接ラッパーではない)に基づいているため、aptパッケージに依存しているため、apt-get(aptにも含まれる)なしでaptitudeをインストールすることはできません。パッケージ)。

$ dpkg --status aptitude| grep Depends
Depends: libapt-pkg-libc6.9-6-4.7, [...]
$ dpkg --status apt|grep Provides
Provides: libapt-pkg-libc6.9-6-4.7
$ dpkg --search /usr/lib/libapt-pkg-libc6.9-6.so.4.7 /usr/bin/apt-get
apt: /usr/lib/libapt-pkg-libc6.9-6.so.4.7
apt: /usr/bin/apt-get

Apt/dpkg/aptitudeの相互作用の詳細については、 Daniel Burrows作成の図 (aptitudeの主要著者)を確認してください。別の図は、さまざまなパッケージ管理ツールによって保存された情報を示しています: aptおよびdpkg状態ファイルのマップ

また、私の記事を読むこともできます apt-get、aptitude、…適切なパッケージマネージャーを選択してください

19

aptitudeは、意図的にインストールしたパッケージと、依存関係を満たすために自動的にインストールされたパッケージを記憶しています。パッケージを削除すると、aptitudeは自動的にインストールされたパッケージを削除してシステムを整頓します。 apt-getはそれほど賢くない。

aptitudeは、パッケージの異なるバージョンで異なるリポジトリを使用すると、すぐに不可欠なツールになります。 backports.orgまたはdebian-multimedia.orgのような非公式リポジトリを使用しているとしましょう。次に、aptitudeが(特定のパッケージの詳細ページの下部に)使用可能なバージョン番号を表示し、1つを選択できるようにします。

このような非公式リポジトリの使用が原因でプログラムが競合する状況になった場合、上部に"Broken:..."と表示されます。 l〜b(limit/flag/broken)と入力して、互いに競合するパッケージのリストを取得できます。競合を手動で解決することがはるかに簡単になります。

さらに、「l」を使用してパッケージリストを制限できます。 「openoffice」で始まるパッケージを探しており、「l」を押して「^openoffice」(正規表現)と入力すると、それらだけが表示されます。パッケージ。メニューから"flat package list"を選択すると、目的をすばやく達成できます。

完全なハンドブックは非常に大きく、より多くのフィルターと可能性を提供します。あなたがそれらを知らない場合でも、aptitudeapt-getの便利な置き換えであり、次のような一般的なパラメーターで使用できます。

aptitude install ... (install or upgrade a package)
aptitude remove ... (remove the binary portions of a package but preserve your /etc configuration)
aptitude purge ... (remove the package completely including your configuration)
7
Signum

引数なしでaptitudeを実行すると、きれいなコンソールUIが提供されるほか、さまざまなapt-*コマンド(およびdselect)が1つのユーティリティに結合されます。

パッケージを検索してインストールするには、apt-getを使用します。

apt-cache search somepkg
apt-get install somepkg

..しかしaptitudeでは同じコマンドです:

aptitude search somepkg
aptitude install somepkg

aptitudeには、aptitude changelog somepkgのようないくつかの追加機能と、パッケージの保持(アップグレードを停止する)などの機能があります-他のコマンド/メソッドを介して達成できなかったものは何もありません。使用する。

5
dbr

他のパッケージ(依存関係)が必要な場合にパッケージをインストールすると、それらもダウンロードおよびインストールされます。 aptitudeは、インストール時に、インストールされたパッケージに付属するパッケージを追跡するため、後者のaptitudeを削除すると、他の(現在は使用されていない)「孤立した」依存関係の削除を求められます。 apt-getは、「main」パッケージを削除した場合に、それらをシステムにサイレントに保持します。

最新バージョンのapt-getにも同様の機能があるようです。 http://www.psychocats.net/ubuntu/aptitude

4
gpilotino

最大の違いは、aptitudeはインタラクティブなものになるように設計されているため、aptツールはスクリプト作業に適しています。後者、つまりaptツールをインタラクティブに使用することで、aptitudeが提供するのと同じ結果を得るためにより多くの労力をかけることができます。何らかの理由でどちらか一方のツールだけで解決する必要があった場合は、パッケージ管理に費やす労力を決定する必要があります。

3
user3146

Aptitudeの重要な利点の1つは、依存関係を計算できることです。まず、複雑な相互依存関係を自分で操作しなくても処理できるため、apt-getが失敗することがよくあります。しかし、それが提示したソリューションが気に入らない場合(そして、それがそれがどれほど優れているかを示すために独自のソリューションを採点する場合)、離れて競合を解決する別のソリューションを考え出すように依頼できます。

それは本当にいくつかの素晴らしいパッケージ管理を行います。

1
Coops

最大の違いは、パラメータなしで「aptitude」と入力することです。

それはあなたにテキストベースのユーザーインターフェースを提供し、キーボードを使用して検索/ナビゲートなどを行うことができます。依存関係、逆依存関係、パッケージの利用可能なすべてのバージョンに関する情報を表示し、それらからその画面からパッケージマネージャー操作を行うことができます。

「g」を押すと、変更を確認し、必要に応じてパッケージの追加と削除を変更し、保留中のすべての操作を適用できます。

Ssh接続またはプレーンな古いターミナルを介したパッケージ管理の優れた視覚的方法。

1
hayalci