回答:
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