web-dev-qa-db-ja.com

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

両方ともapt-getおよびaptitudeは、Debian派生Linuxのコマンドラインパッケージ管理インターフェースであり、さまざまなオプションがありますが、まだ混乱しています。内部では、同じAPTシステムを使用していませんか?

Debianはなぜこれらの並行ツールを維持しているのですか? (ボーナス質問:一体何が wajig ?)

259
Kevin Cantu

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

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

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

  • aptitudeは適格なパッケージを自動的に削除しますが、apt-getを実行するには別のコマンドが必要です
  • pgradedist-upgradeのコマンドは、aptitudeでおそらくより正確な名前safe-upgradeおよびfull -upgrade、それぞれ。
  • aptitudeは実際にはapt-getだけでなく、apt-cacheやapt-markなどのいくつかの関連ツールの機能も実行します。
  • aptitudeには検索のためのわずかに異なるクエリ構文があります(apt-cacheと比較して)
  • aptitudeにはwhyおよびwhy-notコマンドがあり、どのmanually installedパッケージが、実行したいアクションを妨げているかを通知します。
  • 実行したいアクション(パッケージのインストール、削除、更新)が競合する場合、aptitudeはいくつかの潜在的な解決策を提案できます。 apt-getは、「申し訳ありません、Daveです。それを許可することはできません。」

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

要するに、aptitudeはSynapticや他の高レベルのパッケージマネージャーフロントエンドのカテゴリに適切に属しています。たまたまapt-getに似たコマンドラインインターフェイスもある。

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

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

$ apt-get search foo
E: Invalid operation search

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

私がよく使用する2つのwajigコマンドはwajig listfiles foowajig whichpkg /usr/bin/fooです。

225

私はしばしば自分自身を不思議に思った。 ウィキペディアのハイライト aptitudeにはフルスクリーンのテキストモード(呪い)インターフェースがあるというのが主な特徴です。 aptitude自体でほとんどのapt-getコマンド引数を使用できるという事実は、apt-getユーザーがaptitudeに簡単に移動できるようにするための単なる設計上の決定です。その逆。

私はwajigを使用したことはありませんが、ドキュメントでは、それがdebファイル(dpkgを実行するとき)またはaptパッケージ名(代わりにapt-getを実行する場合)。試してみて、それが何であるかを確認してください。

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

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

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

ツールの概要とapt-getを超える機能: http://www.debian.org/doc/FAQ/ch-pkgtools.en.html#s-aptitude

だから、私のアドバイスはapt-get install aptitude :)

26
dsp

aptitudeは、明示的に要求されたパッケージと、依存関係のためにのみインストールされたパッケージを記憶します。明示的に要求されなかったパッケージは、不要になったときに自動的にアンインストールされます。

apt-getは明示的に要求されたパッケージとそれらの依存関係を同じように扱います。

aptitudeを使用することをお勧めします。これは、システムをクリーンに保つのに役立ちます。

20
starblue

apt-getは、さまざまな関連ツールと同様に、aptitudeのそれぞれのコマンドライン呼び出しよりも大幅に少ないメモリを使用し、少し高速です。 32MBのRAMを備えたワイズ化された古いペンティアムthinkpadでdebianインストールをアップグレードしようとするまで、私はこのことに気付かなかった。 apt-getを実行するには、1〜2時間のスワップスラッシングが必要ですが、正常に完了しました。 aptitudeは、もっと長い期間を考えた後で失敗します。

この違いは、現代のデスクトップシステムに似ているものには、ほとんど関係ありません。

12
intuited

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

等々。

9
Siddhartha

それらは同じ基本機能を提供します:コマンドラインからパッケージをインストールおよび削除します。

こちらは より詳細な比較であり、 Ubuntu Stack Exchangeのウェブサイトに掲載されていますhttps://askubuntu.com/questions/1743/is-aptitude-really-better-than-apt-get/1749#1749

8
Riccardo Murri

http://pthree.org/2007/08/12/aptitude-vs-apt-get/ のように、aptitudeの方がコマンドラインインターフェイスを使用する方がはるかに簡単です。

内部では、同じAPTシステムを使用していませんか?はい。

基盤となるシステムはaptだけでなく、dpkgでもあります。このシステムはRPMと同じくらい馬鹿げており、単一のパッケージのインストールと管理しか処理できません。インストールされているファイルがどのパッケージに属しているかを追跡します。

aptは、すべての個々のパッケージのリポジトリのダウンロード、依存関係の追跡などを処理し、dpkgを使用してインストールします。 aptitudeも同じことをしますが、インターフェースは異なります。

7
vdboor

これがまだ当てはまるかどうかはわかりませんが、最先端のDebian開発者Joey Hessは常にapt-getよりも適性を主張してきました。もちろん、ソフトウェアの進化に伴って変化するもの。 Apt-getが依存関係を以前よりも適切に処理するようになりました。 http://lists.debian.org/debian-user/2004/04/msg03138.html から

日付:火曜日、2004年4月20日22:27:12 -0400送信元:ジョーイヘス

Apt-getやdselectの代わりにaptitudeを使うべき9つの理由。

  1. aptitudeはapt-getのように見える

    「aptitude update」、「aptitude upgrade」、または「aptitude install」を実行すると、外観と動作はapt-getと同じですが、いくつかの機能が強化されています。したがって、学習曲線はありません。

    (dselectユーザーの場合、学習曲線は明らかに問題の1つではありません。)

  2. aptitudeは自動的にインストールされたパッケージを追跡します

    システムから未使用のライブラリとサポートパッケージを削除することについて心配する必要はありません。 aptitudeを使用してすべてをインストールする場合は、依存関係だけでプルされたパッケージを追跡し、不要になったパッケージを削除します。

  3. aptitudeは正常に推奨を処理します

    Apt-getの長期にわたる失敗は、Recommends関係に対するサポートの欠如でした。 Debianの多くのパッケージは、平均的なユーザーがパッケージで一般的に使用するソフトウェアを取り込むことを推奨に依存しているため、これは問題です。これは珍しい問題の原因ではありませんが、最近apt-getが少なくとも推奨パッケージに言及できるようになったとしても、警告を見逃しがちです。

    AptitudeはデフォルトでRecommendsをサポートし、Suggestsもサポートするように構成できます。コマンドラインモードで使用する場合、推奨パッケージのインストールもサポートします。

  4. aptitudeを通常のユーザーとして使用し、システムの悪用を避けます

    通常のユーザーとしてaptitudeをGUIモードで実行できることを知らなかったのかもしれません。試してみたい変更を加えます。実際の混乱に陥った場合は、「q」を押して終了できます。変更は保存されません。 (Aptitudeではctrl-uを使用して変更を取り消すこともできます。)通常のユーザーとして実行されているため、aptitudeに何かをするように指示するまでシステムをホースできません。その場合、システムはrootパスワードの入力を求めます。

  5. aptitudeには強力なUIと検索機能があります

    Aptitudeのカテゴリーブラウザーと、名前、説明、メンテナー、依存関係などによるパッケージのmuttスタイルのフィルタリングおよび検索の優れたサポートとの間で、aptitudeを使用する前にこれまでよりも速くパッケージを見つけることができるはずです。

  6. aptitudeを使用すると、古いソフトウェアを簡単に追跡できます

    Debianがパッケージの配布を停止した場合、aptはそれをシステムに無期限に残し、警告もアップグレードもありません。 Aptitudeは、そのようなパッケージを「廃止され、ローカルで作成されたパッケージ」セクションにリストしているので、問題を通知され、それに対して何かを行うことができます。

  7. aptitudeにはDebianタスクシステムへのインターフェースがあります

    Aptitudeでは、Debianのタスクシステムを使用するように設計されているので、それを使用できます。使用可能なタスクを参照して、インストールするタスクを選択し、それを掘り下げて、タスクの不要な部分の選択を解除できます。 apt-getはタスクをサポートしておらず、taskelのような特別な目的のツールよりもaptitudeの方が優れています。

  8. aptitudeは複数のソースをサポートします

    Sources.listがパッケージの複数のバージョンを利用できるように設定されている場合、aptitudeはドリルダウンして利用可能なバージョンを表示し、デフォルト以外のバージョンを選択してインストールできます。パッケージが不安定で壊れた場合は、テスト中のバージョンにロールバックするだけです。

  9. aptitudeはそのアクションを記録します

    Aptitudeのログパッケージは/ varlog/aptitudeにインストール、アップグレード、削除されます。これは、昨日のアップグレード後に、または一部のパッケージを削除したときに問題が発生し始めた理由を解明するのに役立ちます。

-シャイジョーを参照してください

=================== 2010年の新しいディスカッションもあります https://superuser.com/questions/93437/aptitude-vs-apt- StackExchangeのget-which-is-the-recommended-aka-the-right-tool-to-use

6
manselton

Apt-getとaptitudeはどちらもAPTライブラリに依存しています。そうです。

私の serverfault.comの答え を見てください。

Debianはモノリシックなエンティティではなく、意見が異なる人々がいます。aptitudeのメンテナは、apt-getにいくつかの欠点があり、aptitudeでより良いものを構築したいと考えました。彼はロジックを改善して、複雑なアップグレードシナリオの解決策を見つけ、コンソールのGUIを追加しました。そして、apt-getとaptitudeだけではありません。私の記事を参照してください apt-get、aptitude、…適切なパッケージを選択してくださいあなたのためのマネージャー

6