Saya sedang mengerjakan beberapa instruksi penyiapan mesin, dan saya terkejut mengetahui bahwa apt-get install A B
dapat berperilaku berbeda dari apt-get install A && apt-get install B
.
Contoh spesifik saya adalah A == openjdk-7-jdk
dan B == ant
.
Jadi, openjdk-7-jdk
tergantung pada openjdk-7-jre-headless
, yang memenuhi ant
ketergantungan java6-runtime-headless
. Tetapi jika Anda menginstalnya sebagai apt-get install openjdk-7-jdk ant
, APT tampaknya tidak mengetahui hal ini dan menginstal default-jre-headless
. Tetapi jika Anda menginstal openjdk-7-jdk
sebelum menginstal ant
, ketergantungannya terpenuhi dan semuanya baik-baik saja.
APT biasanya cukup pintar untuk mengetahui hal semacam ini, jadi mengapa dalam kasus ini APT tidak bisa melakukannya? Saya ingin memiliki pemahaman yang lebih baik tentang mengapa ini bekerja dengan cara ini, sehingga hal semacam ini tidak membuat saya tersandung lagi di masa mendatang.
Jawaban yang Diterima:
Tampaknya ada semacam sistem "berat" yang dimainkan di sini:
$ 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
Seperti yang Anda lihat ant
tergantung dari openjdk-7-jdk
karena banyaknya saran, rekomendasi, dan ketergantungan yang rumit dan rumit, saat menggunakan openjdk-6-jdk
ketergantungan lebih langsung:
$ aptitude why ant openjdk-6-jdk
p ant Suggests default-jdk | java-compiler | java-sdk
p openjdk-6-jdk Provides java-sdk
Tentu saja aptitude
metode resolusi ketergantungan, bisa berbeda dari apt-get
's. BTW, menjalankan simulasi semut tanpa openjdk-7-jdk terinstal tidak menarik 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]?
Mungkin jika Anda menggunakan metode yang sama seperti yang saya lakukan, Anda dapat mengetahui lebih lanjut, karena saya menggunakan pengujian Debian sekarang dan repositori dapat berubah sementara itu.
Terkait:Bagaimana Cara Menambahkan Entri untuk Ubuntu ke Menu Boot Windows 7 di Ubuntu?