「apt-get」と「aptitude」の実際の違いは何ですか? (「wajig」はどうですか?)

「apt-get」と「aptitude」の実際の違いは何ですか? (「wajig」はどうですか?)

apt-getと は両方ともDebian 派生の Linux 上のコマンドライン パッケージ管理インターフェイスであり、オプションが異なることは知っていますaptitudeが、まだ少し混乱しています。内部的には、同じ APT システムを使用しているのではないですか?

Debianはなぜこれらの並列ツールを維持しているのでしょうか?(ボーナス質問:いったい何がワジグ?)

答え1

最も明らかな違いは、 はaptitudeターミナル メニュー インターフェイス (ターミナルの Synaptic によく似ています) を提供するのに対し、 はapt-get提供しないことです。

それぞれのコマンドライン インターフェイスだけを見ると、非常によく似ており、ほとんどの場合、どちらを使用しても問題はありません。最近のバージョンでは、手動でインストールされたパッケージと、依存関係としてインストールされたパッケージ (したがって、自動削除の対象) が追跡されます。実際、さらに最近では、2 つのツールが更新され、手動でインストールされたパッケージと自動的にインストールされたパッケージの同じデータベースが実際に共有されるようになったため、apt-get で何かをインストールした後で aptitude がそれをアンインストールしようとするケースは、ほとんど過去のものになりました。

いくつか小さな違いがあります:

  • aptitudeは自動的に適切なパッケージを削除しますが、apt-getでは別のコマンドが必要です。
  • コマンドはアップグレードディストリビューションアップグレードおそらくより正確な名前に改名された。安全なアップグレードそしてフルアップグレード、 それぞれ。
  • aptitude は実際には apt-get の機能だけでなく、apt-cache や apt-mark などの関連ツールの機能も実行します。
  • aptitude は検索用のクエリ構文が若干異なります (apt-cache と比較)
  • 適性はなぜそしてなぜだめですかコマンドは手動でインストールパッケージによって、実行したいアクションが妨げられています。
  • 実行したいアクション (パッケージのインストール、削除、更新) が競合を引き起こす場合、aptitude はいくつかの潜在的な解決策を提案できます。apt-get は単に「申し訳ありませんが、Dave、その操作は許可できません」と表示します。

他にも小さな違いはありますが、私が考えられる最も重要な違いはこれらです。

つまり、aptitude は Synaptic やその他の高レベル パッケージ マネージャー フロントエンドと同じカテゴリに属する​​のが適切です。aptitude にはたまたま apt-get に似たコマンド ライン インターフェイスもあります。

ボーナスラウンド: ワジグとは何ですか?

apt-cacheやのような「コンパニオン」ツールについて言及したことを覚えていますapt-markか? こうしたツールは数多くあり、頻繁に使用すると、どのツールがどのコマンドを提供しているか忘れてしまうかもしれません。 は、wajigこの問題に対する 1 つの解決策です。 は本質的にディスパッチャであり、これらすべてのツールをラップするものです。 また、sudo必要に応じて適用されます。 と入力するとwajig install foo、wajig は「わかりました。installは によって提供されておりapt-get、管理者権限が必要です」と答え、 を実行しますsudo apt-get install foo。 と入力するとwajig search foo、wajig は「わかりました。searchは によって提供されておりapt-cache、管理者権限は必要ありません」と答え、 を実行しますapt-cache search foo。 apt-get、apt-mark、apt-cache などの代わりに wajig を使用すると、この問題は発生しません。

$ apt-get search foo
E: Invalid operation search

wajig が舞台裏で何を実行しているか、特定のコマンドを実装するためにどのツールを使用しているかを知りたい場合は、--simulateおよび--teachingモードがあります。

私がよく使う wajig コマンドはwajig listfiles fooとの 2 つですwajig whichpkg /usr/bin/foo

答え2

私自身もよく疑問に思っていました。Wikipediaのハイライトaptitude の主な特徴は、フルスクリーンのテキストモード (curses) インターフェースを備えていることです。ほとんどのapt-getコマンド引数を aptitude 自身で使用できるという事実は、ユーザーが簡単に移動できるようにaptitudeするための設計上の決定にすぎません。apt-getaptitude

私は を使ったことはありませんが、ドキュメントには、 は、ファイル ( を実行する場合) またはパッケージ名 ( を実行する場合)wajigのどちらが渡されるかを認識するスクリプトにすぎないと書かれています。 試してみて、それが何なのか確認していただけますか?debdpkgaptapt-get

もちろん、本物違いは次のとおりです。

gaurav@fern:~$ apt-get moo
         (__) 
         (oo) 
   /------\/ 
  / |    ||   
 *  /\---/\ 
    ~~   ~~   
...."Have you mooed today?"...
gaurav@fern:~$ aptitude moo
There are no Easter Eggs in this program.

答え3

aptitude は、Debian でのパッケージのインストールとパッケージまたはシステムのアップグレードの両方において、コンソールからのパッケージ管理に推奨されるプログラムです。

このツールの概要と、apt-get と比較した機能は次のとおりです。 http://www.debian.org/doc/FAQ/ch-pkgtools.en.html#s-aptitude

したがって、私のアドバイスは、apt-get install aptitude を実行することです :)

答え4

@Gaurav の回答を踏まえると、2 つのパッケージ マネージャーのイースター エッグはかなり面白いです。

siddhartha@siddhartha-dev:~$ apt-get  moo
             (__) 
             (oo) 
       /------\/ 
      / |    ||   
     *  /\---/\ 
        ~~   ~~   
..."Have you mooed today?"...

siddhartha@siddhartha-dev:~$ aptitude  moo
There are no Easter Eggs in this program.
siddhartha@siddhartha-dev:~$ aptitude -v moo
There really are no Easter Eggs in this program.
siddhartha@siddhartha-dev:~$ aptitude -vv moo
Didn't I already tell you that there are no Easter Eggs in this program?
siddhartha@siddhartha-dev:~$ aptitude -vvv moo
Stop it!
siddhartha@siddhartha-dev:~$ aptitude -vvvv moo
Okay, okay, if I give you an Easter Egg, will you go away?
siddhartha@siddhartha-dev:~$ aptitude -vvvvv moo
All right, you win.

                               /----\
                       -------/      \
                      /               \
                     /                |
   -----------------/                  --------\
   ----------------------------------------------
siddhartha@siddhartha-dev:~$ aptitude -vvvvvv moo
What is it?  It's an elephant being eaten by a snake, of course.
siddhartha@siddhartha-dev:~$ aptitude -vvvvvvv moo
What is it?  It's an elephant being eaten by a snake, of course.
siddhartha@siddhartha-dev:~$ aptitude -vvvvvvvv moo
What is it?  It's an elephant being eaten by a snake, of course.

等々。

関連情報