apt-getからaptitudeに切り替えると問題が発生する可能性がありますか?


8

私はaptitudeへの切り替えを考えていましたが、「apt-getをすでに使用している場合は、次のインストールが切り替わるまで待つ必要がある」と言われるのを聞きました。なぜ人々はこれを言うのですか?これによりどのような問題(ある場合)が発生しますか?

回答:


8

apt-getとaptitudeは、同じパッケージ管理システム、APT、Advanced Packaging Toolの一部である異なるUIです。たとえば、どちらもを使用して設定され/etc/apt/apt.conf、パッケージの状態を表すために同じファイルスペースとフォーマットを使用し、ダウンロードした.debsを保存するために同じファイルスペースを使用します。

どのように彼らは異なります(中に言って、それらを解決する方法を、パッケージ間の潜在的な競合を表現するために、社内ルールシステムであるapt-get dist-upgradeaptitude full-upgrade)、およびユーザーと対話するときにこれらを表現する方法。一般的に言えば、どちらもトリッキーな状況では間違った動作をする可能性がありますが、apt-getはaptitudeよりも間違っている可能性が高くなります。


2
すばらしい明確な答え。追加の詳細の1つは、自動的にインストールされた依存関係を削除する方法とタイミングです。aptitudeそれらはすぐapt-getに削除されますが、コマンドを入力することによってそれらを削除するように要求するだけですapt-get autoremove。一般的に、彼らは同じアイテムを削除したいと思うでしょう。ただし、これに同意しない複雑なケースについては、このリンクを参照してください。forums.debian.net
Telemachus

5

良いアドバイスはたくさんありますが、誰も言及していないことを1つ追加しましょう。場合あなたがスイッチに決めるか、あなたがしてまでしてきたものに応じて、このコマンドを実行することもできますapt-get

aptitude keep-all

そのコマンドaptitudeは、どのパッケージが孤立していて削除する必要があるかについてのの感覚をリセットします。

これがときどき役立つ理由は次のとおりです。しばらくの間、両方がapt-getaptitude他の依存関係として自動的にインストールされたパッケージを追跡します。したがって、たとえば、をインストールすると、依存関係としてmpd取得さlib-so-and-soれる可能性があります。後で削除する場合彼らは、これを行うようにすることをmpdlib-so-and-soあまりにも削除されます。しかしaptitudeapt-getこれを別の方法で処理します。aptitudeすべての孤立した依存関係をすぐに削除しようとします。ただし、クリーンアップapt-getを実行apt-get autoremoveするように提案するだけです。(これらすべての背後にある論理は、mpd必要なためにライブラリを取得しただけであるということです。を保持しmpdない場合、ライブラリはもう必要ありません。別のパッケージがまだそれに依存している場合は、両方aptitudeapt-get これを知っていて、ライブラリを削除しようとはしません。)

私のポイントは何ですか?まあ、実行するナッジが絶えず表示されていてapt-get autoremove、に切り替えたaptitude場合、何かを初めてインストールしようとしたときにショックを受けるかもしれません。aptitudeすぐにそれらすべての孤児を削除しようとします。一般的に、これは問題ありません(結局のところ孤児であり、必要ありません)が、複雑なケースが1つあります。デスクトップメタパッケージはすべて、個々のプログラムが仮想パッケージラッパーの依存関係として取り込まれる複雑な依存関係チェーンを伴います。たとえば、gnomeパッケージをインストールしたためにGnomeがインストールされている場合、通常のデスクトッププログラムはすべて依存関係としてインストールされています。これらのプログラム(EkigaやGeditなど)の1つをアンインストールした場合は、aptitudeデスクトップの残りの部分も削除する必要があります。削除する前にaptitude 常に尋ねますが、人々はしばしば「Y」と入力せずに読むことに注意してください。私の経験では、これはDebianを初めて使う人にとって最も一般的な不満/混乱です。

2つの一般的なアドバイス:

  1. 何かに「はい」と言う前に、必ずaptitudeまたは出力をapt-get注意深く読んでください。
  2. aptitude -s safe-upgradeまたはを使用すると、いつでもドライランを実行できますaptitude -s install foo-s|--simulate旗はあなたの友達です。

4

数年前のDebianメーリングリストで、apt-getからaptitudeへの切り替えには危険が伴うと言われていました。これは2つのDebianバージョン(たとえば10年前)です。これらの問題はすべて解決されたようですが、DebianとUbuntuのどちらにも問題は見られません。


1
メーリングリスト投稿へのリンクはありますか?
Matthew

マシュー、私がここにdebian-userメーリングリスト全体の完全にインデックス付けされたアーカイブを保持していると想像していますか?上記のことから、年さえ覚えていないことは明らかですか?
CarlF、2010年

@Matthew:しばらく前(SargeまたはEarly Etch)、からapt-getへの切り替えについて心配している人がたくさんいましたaptitude。当時、彼らは多くの重要な機能を非常に異なって扱いました。時が経つにつれ、それらははるかに類似したものになりaptitude、トンを成熟させました。現在のケースの90%では、切り替えても問題はありません。1つのエッジケースについては、私の投稿を参照してください。
Telemachus 2010

2

私も先に行くと言うでしょうaptitude
Aptitudeには、より優れた依存関係管理機能がありapt-getます。これは、孤立したパッケージの数を少なく保つのに役立ちます。
少し前に読んだことaptitudeがありますが、これはと比較してdistアップグレードアルゴリズムが優れていますapt-get。しかし、システムの耐用年数ではあまり使用されないため、これはキラー機能とは言えません。

さらに、1つのツールでより多くのものが統合されます。むしろときに呼び出す覚えるよりもapt-getapt-cacheまたはdpkg私はちょうど適性を使用すると、ほとんどの物事を成し遂げる切り替わると。

「真ん中」に切り替えるときの合併症について:私がそれをしたときに何があったか覚えていません。


1

同じバックエンドへの異なるインターフェースではないのですか?


2
aptitudeより機能的なインターフェイスです...
quack quixote

そうかもしれません。しかし、より多くの機能を備えたインターフェースは、必ずしも異なるバックエンドを意味するわけではありません。
2010年

2
いいえ、その通りです。どちらものフロントエンドdpkgです。ただしdpkg、パッケージをインストールするだけです。検索、依存関係の解決、ダウンロードを担当するのはフロントエンドです。
Quack quixote、2010年

しかし、検索、ダウンロード、依存関係の解決は何も壊しません。または、それが私の意見では非常に奇妙なものになるとしたら...
03:03にSvish

2
あなたの最後のコメントに気づきました。インストールするものを決定しているのはフロントエンドであることに注意してください。dpkgはインストールのみを行います。何かが壊れた場合、それは通常、依存関係の解決が失敗したか、ユーザーが依存関係の解決をオフにしたためです(たとえば、-forceオプションを使用)。
quack quixote、

1

私の経験から、パッケージバージョンを固定する方法は異なります。私の場合、将来の更新から安全であると想定して、特定のパッケージをロックするようaptitudeに指示しました。私は間違っていた; apt-getを使用するcronでスケジュールされた更新マネージャーは、私を困惑させるようにアップグレードします。

Drats、私がこれを書いていたとき、ググってバグ(#557580 aptitudeがpreferences.d / *のピンに従わない)がすでに修正されていることを知りました!


-1

私は問題なくapt-getとaptitudeの両方を使用しています:同じ質問があります...なぜ人々はこれを言うのですか?:D

心配はいりません。aptitudeはapt-getの単なるテキストGUIであり、コマンドラインアプリケーションとしても使用できます。たとえばapt-get install foo、と同じaptitude install fooです。

よろしく


同じだとは思いません。変更がない限り、aptitudeはより多くの依存関係の追跡を行い、自動インストールされたパッケージを削除しますが、apt-getはそうしません。つまり、fooがbarに依存していて、apt-getを使用してfooをインストールおよび削除した場合、barはシステムに残ります。aptitudeで同じことを行うと、そうなりません。
ウィリアムパーセル2010

そのとおりです。以下の〜quackのコメントを参照してください。
dag729 2010

@ William、@ dag729:の現在のバージョンではapt-get、依存関係としてのみインストールされたパッケージの自動削除も提供しています。その点での残りの違いaptitudeは、(必要に応じて)依存関係が即座に削除さapt-getれますが、コマンドを実行するように指示するだけですapt-get autoremove。しかし、どちらも同じ方法で依存関係を追跡します。ただし、複雑な依存関係とエッジケース(非常に複雑なインストールまたは削除)の処理はまだ異なりますが、大多数の人と大多数の状況では、同じように機能します。
Telemachus 2010
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.