%20%E3%81%8C%E4%BB%96%E3%81%AE%E3%83%91%E3%83%83%E3%82%B1%E3%83%BC%E3%82%B8%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B%E3%81%A8%E3%81%8D%E3%81%AB%E7%89%B9%E5%AE%9A%E3%81%AE%E3%83%91%E3%83%83%E3%82%B1%E3%83%BC%E3%82%B8%E3%82%92%E8%87%AA%E5%8B%95%E7%9A%84%E3%81%AB%E5%89%8A%E9%99%A4%E3%81%99%E3%82%8B%E3%81%AE%E3%81%AF%E3%81%AA%E3%81%9C%E3%81%A7%E3%81%99%E3%81%8B%3F.png)
例えばAtom テキストエディタ実行すると:
sudo apt-get install imagemagick # http://www.imagemagick.org/script/index.php
与える:
you might want to run 'apt-get -f install' to correct these:
The following packages have unmet dependencies: virtualbox-5.0:i386 : Depends: psmisc:i386 but it is not going to be installed
そこで、次のことを試します。
sudo apt-get -f install
私は
The following packages were automatically installed and are no longer required:
libgtkspell0 pidgin-data
Use 'apt-get autoremove' to remove them.
The following extra packages will be installed:
psmisc:i386
The following packages will be REMOVED:
atom gconf2 psmisc
The following NEW packages will be installed:
psmisc:i386
私の疑問は、なぜ原子まったく異なるものをインストールしようとするとアンインストールされるのでしょうか?
編集: 手順を繰り返すが、
apt-get autoremove
の代わりに
sudo apt-get -f install
問題を解決しました。
しかし、なぜ不要なパッケージが、実際に必要なパッケージ(atom)の削除を引き起こすのか、まだ理解できません。
答え1
これは、apt 内の各パッケージに依存関係のリストがあるために発生します。これは次のように確認できます。
apt-cache depends libgtkspell0 pidgin-data atom
パッケージを保持するために、apt は、atom の依存関係の 1 つと競合する依存関係を持つ atomic を削除することを提案しています。特に次の点に注意してください。
Conflicts: libgtkspell0:i386
出力の一部。
つまり、apt は単に競合を解決しようとしているだけです。理論上は、apt はシステム内でアクティブなパッケージではなく、不要になったパッケージを削除するように提案するはずなので、削除する 2 つのパッケージのパッケージ作成者に問題を投稿する価値があるかもしれないことに注意する必要がありますが、パッケージ プール内で依存関係/競合リストを作成して維持することは常にバランスが取れています。
私の推測では、apt は依存関係リストを作成するときに、削除対象のパッケージとアクティブなパッケージを内部的に区別する方法が実際にはないため、単純に、最も悪い結果 (つまり、パッケージの強制削除) が少ない結果を選択しているのではないかと思います。