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


56

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

回答:


48

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 <ubuntu-devel-discuss@lists.ubuntu.com>
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.

10
言うまでもなく:$ aptitude changelog bash
pgs

aptitude最新でもaptできないことを知っている他のトリック:名前または説明がインストールされているaptitude search '~i linux'パッケージを検索しますlinuxaptitude search '~o'廃止されたパッケージ(リポジトリで提供されなくなったインストール済みパッケージ)をリストします。aptitude search '!~M ~i'自動的にインストール済みとしてマークされていないパッケージを表示します。aptitude search '~i lib.*-dev'インストールされた開発用ライブラリを示し、あなたは置き換えることができsearchmarkautounmarkautoのように、自動または手動でインストールこれらのパッケージをマークします。
ミッコランタライネン

44
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. 

19

現在、Debianインストーラー内で使用され、リリースノートで推奨されている公式ツールは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を読むこともできます...あなたにぴったりのパッケージマネージャーを選択してください


7

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

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

このような非公式リポジトリの使用によりプログラムが競合する状況に陥ると、上部に「Broken:...」と表示されます。あなたは入力できリットル〜B(上限/旗/壊れた)とそれだけ互いに競合するパッケージのリストを取得します。手動で競合を簡単に解決できます。

さらに、「l」を使用してパッケージリストを制限できます。「openoffice」で始まり、「」を押して「l」と入力^openofficeするパッケージ(正規表現)を検索すると、それらのパッケージだけが表示されます。メニューから「フラットパッケージリスト」を選択すると、すぐに目標を達成できます。

完全なハンドブックは非常に大きく、より多くのフィルターと可能性を提供します。それらaptitudeが便利な代替品であることを知らなくても、次のapt-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)

2
実際、Lennyの時点で、apt-getは、明示的に要求したものの依存関係としてのみインストールされたパッケージも追跡します。私は自分でaptitudeを使用していapt-get autoremoveますが、現在は削除されたパッケージの依存関係としてインストールされたパッケージを削除します。
テレマコス

あなたも、単に使用することができますNowdays apt、それはその原料の混合を行うことができますapt-getし、apt-cache実行するために使用。たとえば、名前または説明にapt search foo含まfooれるパッケージをリストします。利用可能な場合にapt install foo呼び出されるパッケージをインストールし、現在インストールされているバージョンとpackageの利用可能なすべてのバージョンを一覧表示します。fooapt policy foofoo
ミッコランタライネン

aptitudeでもそれ以上のことができますが、多くの場合apt、プレーンのapt方がはるかに高速です。
ミッコランタライネン

5

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

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

apt-cache search somepkg
apt-get install somepkg

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

aptitude search somepkg
aptitude install somepkg

aptitudeaptitude changelog somepkgパッケージの保持(アップグレードの停止)などの追加機能があります-他のコマンド/メソッドでは達成できなかったもので、より統一されていて使いやすいです。


3
残念なことに、「apt-cacheポリシー」に相当するものがありません。
hayalci

4

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

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


aptitudeまたはapt、実際には、特定のパッケージの依存関係としてインストールされたパッケージのリストを保持しません。パッケージが手動または自動でインストールされたかどうかを単に追跡します。また、パッケージが自動的にインストール済みとしてマークされ、他のパッケージが依存または推奨しない場合、apt autoremoveまたはで削除されaptitude dist-upgradeます。
ミッコランタライネン

3

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


1

aptitudeの重大な利点の1つは、依存関係を計算できることです。第一に、複雑な相互依存関係を自分で操作しなくても処理できるため、多くの場合apt-getは失敗します。しかし、あなたが提示した解決策が気に入らない場合(そして、それがどれほど良いと思うかを示すために独自の解決策を採点します)、あなたはそれを去って、対立を解決するために別の解決策を考え出すことができます。

本当に素晴らしいパッケージ管理を行います。


1

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

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

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

ssh接続または単純な古い端末でのパッケージ管理の優れた視覚的方法。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.