回答:
apt-getとaptitudeは、同じパッケージ管理システム、APT、Advanced Packaging Toolの一部である異なるUIです。たとえば、どちらもを使用して設定され/etc/apt/apt.conf、パッケージの状態を表すために同じファイルスペースとフォーマットを使用し、ダウンロードした.debsを保存するために同じファイルスペースを使用します。
どのように彼らは異なります(中に言って、それらを解決する方法を、パッケージ間の潜在的な競合を表現するために、社内ルールシステムであるapt-get dist-upgrade対aptitude full-upgrade)、およびユーザーと対話するときにこれらを表現する方法。一般的に言えば、どちらもトリッキーな状況では間違った動作をする可能性がありますが、apt-getはaptitudeよりも間違っている可能性が高くなります。
良いアドバイスはたくさんありますが、誰も言及していないことを1つ追加しましょう。場合あなたがスイッチに決めるか、あなたがしてまでしてきたものに応じて、このコマンドを実行することもできますapt-get。
aptitude keep-all
そのコマンドaptitudeは、どのパッケージが孤立していて削除する必要があるかについてのの感覚をリセットします。
これがときどき役立つ理由は次のとおりです。しばらくの間、両方がapt-get、aptitude他の依存関係として自動的にインストールされたパッケージを追跡します。したがって、たとえば、をインストールすると、依存関係としてmpd取得さlib-so-and-soれる可能性があります。後で削除する場合彼らは、これを行うようにすることをmpd、lib-so-and-soあまりにも削除されます。しかしaptitude、apt-getこれを別の方法で処理します。aptitudeすべての孤立した依存関係をすぐに削除しようとします。ただし、クリーンアップapt-getを実行apt-get autoremoveするように提案するだけです。(これらすべての背後にある論理は、mpd必要なためにライブラリを取得しただけであるということです。を保持しmpdない場合、ライブラリはもう必要ありません。別のパッケージがまだそれに依存している場合は、両方aptitudeとapt-get これを知っていて、ライブラリを削除しようとはしません。)
私のポイントは何ですか?まあ、実行するナッジが絶えず表示されていてapt-get autoremove、に切り替えたaptitude場合、何かを初めてインストールしようとしたときにショックを受けるかもしれません。aptitudeすぐにそれらすべての孤児を削除しようとします。一般的に、これは問題ありません(結局のところ孤児であり、必要ありません)が、複雑なケースが1つあります。デスクトップメタパッケージはすべて、個々のプログラムが仮想パッケージラッパーの依存関係として取り込まれる複雑な依存関係チェーンを伴います。たとえば、gnomeパッケージをインストールしたためにGnomeがインストールされている場合、通常のデスクトッププログラムはすべて依存関係としてインストールされています。これらのプログラム(EkigaやGeditなど)の1つをアンインストールした場合は、aptitudeデスクトップの残りの部分も削除する必要があります。削除する前にaptitude 常に尋ねますが、人々はしばしば「Y」と入力せずに読むことに注意してください。私の経験では、これはDebianを初めて使う人にとって最も一般的な不満/混乱です。
2つの一般的なアドバイス:
aptitudeまたは出力をapt-get注意深く読んでください。aptitude -s safe-upgradeまたはを使用すると、いつでもドライランを実行できますaptitude -s install foo。-s|--simulate旗はあなたの友達です。数年前のDebianメーリングリストで、apt-getからaptitudeへの切り替えには危険が伴うと言われていました。これは2つのDebianバージョン(たとえば10年前)です。これらの問題はすべて解決されたようですが、DebianとUbuntuのどちらにも問題は見られません。
apt-getへの切り替えについて心配している人がたくさんいましたaptitude。当時、彼らは多くの重要な機能を非常に異なって扱いました。時が経つにつれ、それらははるかに類似したものになりaptitude、トンを成熟させました。現在のケースの90%では、切り替えても問題はありません。1つのエッジケースについては、私の投稿を参照してください。
私も先に行くと言うでしょうaptitude。
Aptitudeには、より優れた依存関係管理機能がありapt-getます。これは、孤立したパッケージの数を少なく保つのに役立ちます。
少し前に読んだことaptitudeがありますが、これはと比較してdistアップグレードアルゴリズムが優れていますapt-get。しかし、システムの耐用年数ではあまり使用されないため、これはキラー機能とは言えません。
さらに、1つのツールでより多くのものが統合されます。むしろときに呼び出す覚えるよりもapt-get、apt-cacheまたはdpkg私はちょうど適性を使用すると、ほとんどの物事を成し遂げる切り替わると。
「真ん中」に切り替えるときの合併症について:私がそれをしたときに何があったか覚えていません。
同じバックエンドへの異なるインターフェースではないのですか?
aptitudeより機能的なインターフェイスです...
dpkgです。ただしdpkg、パッケージをインストールするだけです。検索、依存関係の解決、ダウンロードを担当するのはフロントエンドです。
私は問題なくapt-getとaptitudeの両方を使用しています:同じ質問があります...なぜ人々はこれを言うのですか?:D
心配はいりません。aptitudeはapt-getの単なるテキストGUIであり、コマンドラインアプリケーションとしても使用できます。たとえばapt-get install foo、と同じaptitude install fooです。
よろしく
apt-get、依存関係としてのみインストールされたパッケージの自動削除も提供しています。その点での残りの違いaptitudeは、(必要に応じて)依存関係が即座に削除さapt-getれますが、コマンドを実行するように指示するだけですapt-get autoremove。しかし、どちらも同じ方法で依存関係を追跡します。ただし、複雑な依存関係とエッジケース(非常に複雑なインストールまたは削除)の処理はまだ異なりますが、大多数の人と大多数の状況では、同じように機能します。
aptitudeそれらはすぐapt-getに削除されますが、コマンドを入力することによってそれらを削除するように要求するだけですapt-get autoremove。一般的に、彼らは同じアイテムを削除したいと思うでしょう。ただし、これに同意しない複雑なケースについては、このリンクを参照してください。forums.debian.net