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


256

私はその両方を知っているapt-getし、aptitudeDebianの上のコマンドラインのパッケージ管理インターフェイスは、さまざまなオプションで、Linuxの派生ですが、私はまだ多少混乱しています。内部では、同じAPTシステムを使用していませんか?

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


私はあなたの質問に対する正しい答えではないことを知っていますが、なぜシナプスを試すことができないのですか?そのユーザーはごくわずかであり、依存関係を自動的にダウンロードしてインストールします。gnomeはシステムに存在しませんか?
ヘマント

私は偏見がありますが、Ubuntu SEサイトでのこの質問は関連性があると思います。
デビッドZ


なぜなら、この質問のwajig部分の@Wimは、私の周りの代わりに他の方法のこの質問に244をマージすることを決めた
xenoterracide

1
Ubuntuの次のバージョンのデフォルトのインストールからaptitudeを削除する予定です(後でapt-getを使用していつでもインストールできます)
ロブコーウェル

回答:


223

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

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

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

  • aptitudeは適格なパッケージを自動的に削除しますが、apt-getはそうするために別のコマンドを必要とします
  • upgradedist-upgradeのコマンドは、aptitudeでおそらくより正確な名前safe-upgradeおよびfull-upgradeにそれぞれ名前が変更されました。
  • aptitudeは、実際にはapt-getだけでなく、apt-cacheやapt-markなどの付属ツールの機能も実行します。
  • aptitudeには、検索用のわずかに異なるクエリ構文があります(apt-cacheと比較して)
  • aptitudeには、手動でインストールされたパッケージのどれがあなたがしたい行動を妨げているを伝えるためのwhywhy-notコマンドがあります。
  • 実行するアクション(パッケージのインストール、削除、更新)が競合する場合、aptitudeはいくつかの潜在的な解決策を提案できます。apt-getは、「ごめんなさい、デイブ、ごめんなさい。」と言うだけです。

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

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

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

apt-cacheやapt-markのような「コンパニオン」ツールについてどのように言及したか覚えていますか?まあ、それらの束があり、それらを頻繁に使用する場合、どのコマンドがどのコマンドを提供するか覚えていないかもしれません。wajigはその問題の解決策の1つです。本質的にはディスパッチャであり、これらのツールすべてのラッパーです。また、必要に応じてsudoを適用します。と言うとwajig install foo、wajigは「OK、管理者権限installによって提供されapt-get、管理者権限が必要です」と表示され、実行されsudo apt-get install fooます。あなたが言うときwajig search foo、wajigは「OK、管理者権限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 foowajig whichpkg /usr/bin/foo


私がaptitudeで抱えていた大きな問題の1つは、パッケージ名(aptitude install linux-imタブなど)のタブ補完を取得するのに長い時間がかかることですが、apt-getの場合は非常に高速です。apt-getファミリには、適性に欠けているキャッシングが存在するようです。
レベスク

12
aptitudeまたaptitude search非常に強力な検索パターンで使用できるものもあります。あなたが持っていaptitude reinstallます。また、ncurses(ターミナルメニュー)インターフェイスを使用して、部分アップグレードなどの複雑なパッケージ操作準備し、1つのパッケージを削除し、別のパッケージをフリーズし、このパッケージをアップグレードして、1 回の操作で実行できます ... 対話型競合リゾルバ
トトール

3
@Totor holy cow、aptitudeのncursesインターフェースを使用してコマンドを準備すると、aptitudeで1度だけ売れました!(適性は長年考えていたが、筋肉の記憶からapt-getと入力する)
TJエリス

2
... aptitudeまたaptitude download package-name、パッケージの.debファイルを取得する必要があります!
トーター

2
それは私が見つけた1つのことであり、それは入っていませんが入ってaptitudeいますapt-get、そしてそれはapt-get --compile source package-nameです。 apt-get build-dep package-name存在しますが、私はそれaptitude build-dep package-nameがより良い仕事をすると思います。
アンデルス

71

私はよく自分自身を疑問に思いました。ウィキペディアでは、主な特徴はaptitudeにフルスクリーンテキストモード(呪い)インターフェイスがあることです。ほとんどのapt-getコマンド引数をaptitudeそれ自体で使用できるという事実は、apt-getユーザーが移行しやすくするための設計上の決定にすぎませんaptitude

私は一度も使用したことがありませんwajigが、ドキュメントでは、debファイル(実行時dpkg)またはaptパッケージ名(apt-get代わりに実行時)を渡すかどうかを知る単なるスクリプトであることを示唆しています。あなたはそれを試してみて、それがそれが何であるかを見ることができますか?

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

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

52
番号!aptitudeもっとあります。に無限の-vフラグを付けるのを忘れましたmoo。(まで行くことができます-vvvvvv
-Umang

12
すべての重要なスーパー牛パワーズ、忘れてはいけないapt-get持っていますが、aptitudeしませんが。(--help両方試してください)
デロバート

爆笑。@ryanの答えははるかに複雑ですが、読むのは楽しい答えです;)
マイケルトゥルー

26

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

以下は、ツールとapt-getの機能の概要です:http : //www.debian.org/doc/FAQ/ch-pkgtools.en.html#s-aptitude

だから、私のアドバイスは、apt-get aptitudeをインストールすることです:)


2
リリースノートには、 apt-getを、今絞るへのアップグレードのための適性上をお勧めしますと言います。
-jrdioko

1
はい、しかしそれだけです。それ以外の場合aptitudeは、同等と見なされますが、検索や全画面モードなど、より高度な機能が多数ありますapt-get
アンデルス

何らかの理由でaptitudeを使用してemacsをインストールし、それを見ずにgdmを削除しました!そのため、当面はapt-getを使用しますが、適性には非常に興味があります。
トムファース14年

20

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

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

使用方法を改善するaptitudeことで、システムを清潔に保つことができます。


4
これは以前は真実でしたが、apt-get autoremove依存関係としてのみインストールされたパッケージを削除するコマンドがapt-getにあることは知っています。この機能がいつ追加されたかはわかりませんが、あるWebサイトでは、Debian Lenny(2010年6月)で発生した可能性が示唆されています。
ガウラブ

8
apt-get autoremove依存関係としてのみインストールされたパッケージを削除するのではなく、孤立した依存関係を削除します。これは微妙な違いです。「リーフ」パッケージが意図的にインストールされたのか、依存関係としてインストールされたのかを判断できないため、aptitudeが認識して削除する場所に置き去りにされます。
pjz

売れました!他にも良い点がありますがaptitude、これは非常に優れた機能です。
iconoclast

12

apt-get、さまざまなコンパニオンツールと同様、使用するメモリはの各コマンドライン呼び出しよりも大幅に少なくaptitude、少し高速です。32MBのRAMを備えた賢明な古いpentium thinkpadでdebianのインストールをアップグレードしようとするまで、私はこのことに気づきませんでした。実行するには1〜2時間のスワップスラッシングが必要でしたがapt-get、正常に完了しました。aptitude私はもっ​​と長い期間を考えた後に失敗するでしょう。

この区別は、現代のデスクトップシステムに似ているものとは多かれ少なかれ無関係です。


9

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

等々。



7

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

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

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

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


6

apt-getとaptitudeはどちらもAPTライブラリに依存しています、はい。

serverfault.comで私の答えをご覧ください。

Debianはモノリシックなエンティティではありません。意見の異なる人々がいます。aptitudeのメンテナーはapt-getにいくつかの欠点があると判断し、aptitudeでより良いものを構築したいと考えました。彼は、複雑なアップグレードシナリオのソリューションを見つけるためのロジックを改善し、コンソール用のGUIを追加しました。さらに、apt-getとaptitudeだけではありません。apt-get、aptitudeの記事をご覧ください


6

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

日付:2004年4月20日火曜日22:27:12 -0400投稿者:Joey Hess

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の多くのパッケージは、平均的なユーザーが一般的にパッケージで使用するソフトウェアを取り込むために、Recommendsに依存しているため、これは問題です。これはトラブルの珍しい原因ではありません。apt-getは最近、少なくとも推奨パッケージについて言及できるようになりましたが、警告を見逃すことは簡単です。

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

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

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

  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-get-which- StackExchangeで使用するの推奨される別名のツールです

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