私はその両方を知っているapt-get
し、aptitude
Debianの上のコマンドラインのパッケージ管理インターフェイスは、さまざまなオプションで、Linuxの派生ですが、私はまだ多少混乱しています。内部では、同じAPTシステムを使用していませんか?
私はその両方を知っているapt-get
し、aptitude
Debianの上のコマンドラインのパッケージ管理インターフェイスは、さまざまなオプションで、Linuxの派生ですが、私はまだ多少混乱しています。内部では、同じAPTシステムを使用していませんか?
回答:
最も明らかな違いはaptitude
、ターミナルメニューインターフェイスを提供することです(ターミナルのSynapticによく似apt-get
ています)。
それぞれのコマンドラインインターフェイスのみを考慮すると、それらは非常に類似しており、ほとんどの場合、どちらを使用するかは重要ではありません。両方の最近のバージョンは、手動でインストールされたパッケージと依存関係としてインストールされたパッケージを追跡します(したがって、自動削除の対象となります)。実際、最近では、2つのツールが更新されて、手動と自動でインストールされたパッケージの同じデータベースを実際に共有するようになったため、apt-getで何かをインストールしてからaptitudeがそれをアンインストールしたい場合は、ほとんどが過去。
いくつかの小さな違いがあります。
他にも小さな違いがありますが、それらは私が考えることができる最も重要な違いです。
要するに、aptitudeはSynapticやその他の高レベルパッケージマネージャーフロントエンドのカテゴリに適切に属します。たまたまapt-getに似たコマンドラインインターフェイスもあります。
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 foo
とwajig whichpkg /usr/bin/foo
。
aptitude install linux-im
タブなど)のタブ補完を取得するのに長い時間がかかることですが、apt-getの場合は非常に高速です。apt-getファミリには、適性に欠けているキャッシングが存在するようです。
aptitude
またaptitude download package-name
、パッケージの.debファイルを取得する必要があります!
aptitude
いますapt-get
、そしてそれはapt-get --compile source package-name
です。 apt-get build-dep package-name
存在しますが、私はそれaptitude build-dep package-name
がより良い仕事をすると思います。
私はよく自分自身を疑問に思いました。ウィキペディアでは、主な特徴は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.
aptitude
もっとあります。に無限の-v
フラグを付けるのを忘れましたmoo
。(まで行くことができます-vvvvvv
)
apt-get
持っていますが、aptitude
しませんが。(--help
両方試してください)
aptitudeは、Debianでのパッケージのインストールとパッケージまたはシステムのアップグレードの両方で、コンソールからのパッケージ管理に推奨されるプログラムです。
以下は、ツールとapt-getの機能の概要です:http : //www.debian.org/doc/FAQ/ch-pkgtools.en.html#s-aptitude
だから、私のアドバイスは、apt-get aptitudeをインストールすることです:)
aptitude
は、同等と見なされますが、検索や全画面モードなど、より高度な機能が多数ありますapt-get
。
aptitude
どのパッケージが明示的に要求され、どのパッケージが依存関係のためにのみインストールされたかを記憶します。不要になったときに明示的に要求されなかったパッケージを自動的にアンインストールします。
apt-get
明示的に要求されたパッケージとその依存関係を同じように扱います。
使用方法を改善するaptitude
ことで、システムを清潔に保つことができます。
apt-get autoremove
依存関係としてのみインストールされたパッケージを削除するコマンドがapt-getにあることは知っています。この機能がいつ追加されたかはわかりませんが、あるWebサイトでは、Debian Lenny(2010年6月)で発生した可能性が示唆されています。
apt-get autoremove
依存関係としてのみインストールされたパッケージを削除するのではなく、孤立した依存関係を削除します。これは微妙な違いです。「リーフ」パッケージが意図的にインストールされたのか、依存関係としてインストールされたのかを判断できないため、aptitudeが認識して削除する場所に置き去りにされます。
aptitude
、これは非常に優れた機能です。
@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.
等々。
それらは同じ基本機能を提供します:コマンドラインからパッケージをインストールおよび削除します。
以下に、Ubuntu Stack Exchange Webサイトに掲載されているより詳細な比較を示します。https://askubuntu.com/questions/1743/is-aptitude-really-better-than-apt-get/1749#1749
http://pthree.org/2007/08/12/aptitude-vs-apt-get/に記載されaptitude
ているように、コマンドラインインターフェイスの使用がはるかに簡単です。
内部では、同じAPTシステムを使用していませんか?はい。
基礎となるシステムはただapt
ではありませんdpkg
。このシステムはRPMと同じくらい愚かで、単一のパッケージのインストールと管理しか処理できません。どのインストールファイルがどのパッケージに属しているかを追跡します。
apt
すべての個々のパッケージのリポジトリのダウンロード、依存関係の追跡などを処理し、それを使用してインストールしdpkg
ます。aptitude
異なるインターフェースで同じことを行います。
apt-getとaptitudeはどちらもAPTライブラリに依存しています、はい。
serverfault.comで私の答えをご覧ください。
Debianはモノリシックなエンティティではありません。意見の異なる人々がいます。aptitudeのメンテナーはapt-getにいくつかの欠点があると判断し、aptitudeでより良いものを構築したいと考えました。彼は、複雑なアップグレードシナリオのソリューションを見つけるためのロジックを改善し、コンソール用のGUIを追加しました。さらに、apt-getとaptitudeだけではありません。apt-get、aptitudeの記事をご覧ください。
これがまだ当てはまるかどうかはわかりませんが、最先端の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つの理由。
aptitudeはapt-getのように見えます
「aptitude update」、「aptitude upgrade」、または「aptitude install」を実行すると、apt-getと同じように見え、機能しますが、いくつかの機能が強化されています。したがって、学習曲線はありません。
(dselectユーザーの場合、学習曲線は明らかに問題の1つではありません。)
aptitudeは自動的にインストールされたパッケージを追跡します
システムの未使用ライブラリとサポートパッケージの整理について心配する必要はありません。aptitudeを使用してすべてをインストールすると、依存関係だけでどのパッケージが取り込まれたかを追跡し、不要になったパッケージを削除します。
aptitudeは推奨事項を正常に処理します
apt-getの長年の失敗は、Recommends関係へのサポートの欠如でした。Debianの多くのパッケージは、平均的なユーザーが一般的にパッケージで使用するソフトウェアを取り込むために、Recommendsに依存しているため、これは問題です。これはトラブルの珍しい原因ではありません。apt-getは最近、少なくとも推奨パッケージについて言及できるようになりましたが、警告を見逃すことは簡単です。
AptitudeはデフォルトでRecommendsをサポートしていますが、Suggestsもサポートするように設定できます。コマンドラインモードで使用する場合、推奨パッケージのインストールもサポートします。
通常のユーザーとしてaptitudeを使用し、システムのホースを避けます
たぶん、あなたは通常のユーザーとしてGUIモードでaptitudeを実行できることを知らなかったかもしれません。試してみたい変更を加えます。実際の混乱に陥った場合、「q」を押して終了できますが、変更は保存されません。(Aptitudeではctrl-uを使用して変更を元に戻すこともできます。)通常のユーザーとして実行されているため、aptitudeに何かを行うまでシステムをホースすることはできません。
aptitudeには強力なUIと検索機能があります
aptitudeのカテゴリブラウザーと、名前、説明、メンテナー、依存関係などによるパッケージのmuttスタイルのフィルタリングおよび検索の優れたサポートとの間で、aptitudeを使用する前よりも速くパッケージを見つけることができるはずです。
aptitudeにより、古いソフトウェアを簡単に追跡できます
Debianがパッケージの配布を停止すると、aptは警告もアップグレードもせずに、システム上にそれを無期限に残します。Aptitudeは、そのようなパッケージを「廃止され、ローカルで作成されたパッケージ」セクションにリストしているため、問題について通知を受け、それについて何かを行うことができます。
aptitudeにはDebianタスクシステムへのインターフェースがあります
Aptitudeを使用すると、使用するように設計されたDebianのタスクシステムを使用できます。使用可能なタスクを参照し、インストールするタスクを選択してから、そのタスクを掘り下げて、不要なタスクの部分を選択解除できます。apt-getはタスクをサポートしていないため、taskelのような特別な目的のツールよりもaptitudeの方が優れています。
aptitudeは複数のソースをサポートしています
sources.listがパッケージの複数のバージョンを使用可能にするように構成されている場合、aptitudeを使用すると、使用可能なバージョンを確認し、インストールするデフォルト以外のバージョンを選択できます。パッケージが不安定版で壊れた場合、テスト中のバージョンにロールバックするだけです。
aptitudeはそのアクションを記録します
Aptitudeは/ varlog / aptitudeにインストール、アップグレード、削除するパッケージをログに記録します。これは、昨日のアップグレード後または特定のパッケージを削除したときに問題が発生し始めた理由を調べるのに役立ちます。
-シャイジョーを参照
=================== 2010年以降の新しい議論もここにありますhttps://superuser.com/questions/93437/aptitude-vs-apt-get-which- StackExchangeで使用するのに推奨される別名のツールです。