いくつかのマシンのセットアップ手順に取り組んでいますが、apt-get install A B
であることに驚きました。 apt-get install A && apt-get install B
とは異なる動作をする可能性があります 。
私の具体的な例はA == openjdk-7-jdk
です。 およびB == ant
。
したがって、openjdk-7-jdk
openjdk-7-jre-headless
に依存します 、ant
を満たす の依存関係java6-runtime-headless
。ただし、apt-get install openjdk-7-jdk ant
としてインストールする場合 、APTはこれを理解していないようで、default-jre-headless
をインストールします 。ただし、openjdk-7-jdk
をインストールする場合 ant
をインストールする前に 、その依存関係は満たされ、すべてが良好です。
APTは通常、この種のことを理解するのに十分賢いのですが、この場合、なぜそうできないのでしょうか。なぜこのように機能するのかをよりよく理解したいので、この種のことが将来再び私をつまずかせることはありません。
承認された回答:
ここで何らかの「ウェイト」システムが機能しているようです:
$ aptitude why ant openjdk-7-jdk
p ant Recommends ant-optional
p ant-optional Suggests libgnumail-java
p libgnumail-java Suggests libgnumail-java-doc
p libgnumail-java-doc Recommends default-jdk-doc
p default-jdk-doc Depends openjdk-7-doc
p openjdk-7-doc Suggests openjdk-7-jdk
ご覧のとおり、ant
openjdk-7-jdk
に依存 openjdk-6-jdk
を使用する場合、複雑で複雑な量の提案、推奨事項、および依存関係が原因です。 依存関係はより直接的です:
$ aptitude why ant openjdk-6-jdk
p ant Suggests default-jdk | java-compiler | java-sdk
p openjdk-6-jdk Provides java-sdk
もちろんaptitude
依存関係の解決方法は、apt-get
とは異なる可能性があります の。ところで、openjdk-7-jdkをインストールせずにantのシミュレーションを実行しても、openjdk-6-jdkはプルされません:
$ sudo apt-get install ant
[sudo] password for braiam:
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
ant-optional
Suggested packages:
default-jdk java-compiler java-sdk ant-gcj ant-doc liboro-java junit
libregexp-java jython antlr libbcel-java libjdepend-java libgnumail-java
libcommons-net-java libjsch-java javacc ant-optional-gcj
The following NEW packages will be installed:
ant ant-optional
0 upgraded, 2 newly installed, 0 to remove and 9 not upgraded.
Need to get 2,234 kB of archives.
After this operation, 3,041 kB of additional disk space will be used.
Do you want to continue [Y/n]?
たぶん、私が行ったのと同じ方法を使用すれば、私が現在Debianテストを使用していて、その間にリポジトリが変更された可能性があるので、もっと理解できるでしょう。
関連:UbuntuのエントリをUbuntuのWindows 7ブートメニューに追加するにはどうすればよいですか?