Perbedaan antara `dpkg -i` dan` apt-get install`

16

Dari semua T&J lainnya (seperti: Apa perbedaan antara dpkg dan aptitude / apt-get? ) Saya mengerti itu apt-getadalah penutup dpkgdan menyediakan manajemen ketergantungan.

Dengan asumsi saya menginstal sesuatu yang tidak memiliki dependensi (atau mereka juga diinstal pada saat yang sama) apakah akan ada perbedaan antara menginstalnya menggunakan apt-getvsdpkg

Misalnya (perbedaan nyata yang saya cari)

  • katakanlah dpkgtidak dapat mengunduh pkg dari suatu tempat, saya harus mengunduh sebelum memulai instalasi, sedangkan apt-getakan melakukan ini atas nama saya.
  • dpkgtidak akan mengonfigurasi pkg, itu hanya akan menyalin file. apt-getakan mengkonfigurasi juga.

...

Kashyap
sumber

Jawaban:

16

dpkg -imenginstal *.debpaket, artinya paket yang sudah Anda unduh dari suatu tempat. Ini juga mengkonfigurasi mereka, tetapi tidak mengunduh / menginstal dependensi. Anda harus mengunduh file paket biner secara manual dari suatu tempat. Mungkin juga ada bahaya dalam mengunduh paket dari lokasi yang bukan repositori yang telah dimasukkan / diaktifkan oleh distro Anda secara default, karena paket pihak ketiga bisa berbahaya.


apt-get/aptitude install secara otomatis mengakses repositori dan indeks PPA yang Anda aktifkan, mencari kandidat terbaik, mengunduhnya dan semua dependensinya dan menginstal dan mengonfigurasinya secara otomatis.

Menggunakan apt-get install -f, Anda dapat secara otomatis menginstal hilang dependensi paket misalnya yang diinstal melalui dpkg -i.

Komandan Byte
sumber
5
Catatan cepat di sini, apt-getdapat menginstal dependensi dari paket yang diinstal dengan dpkg -i. Jalankan apt-get install -funtuk mencapai itu.
noirscape
1
@ Ev1l0rd Benar, saya menambahkan itu ke jawaban saya.
Byte Commander
2
Perbedaan penting lainnya, dan kasus untuk menggunakan apt-getatau aptitude, adalah bahwa mereka ingat apakah suatu paket diinstal secara manual (secara khusus diminta), atau apakah itu diinstal untuk memenuhi ketergantungan. Dengan begitu, ketika Anda kemudian menghapus suatu paket, mereka dapat secara otomatis menghapus (atau setidaknya memberi tahu Anda tentang) paket-paket yang "diinstal secara otomatis dan tidak lagi diperlukan". Jika Anda menginstal setiap paket dengan dpkgmaka Anda harus ingat dan menghapus secara manual tidak hanya paket Anda tetapi semua dependensinya (dengan asumsi tidak ada yang lain tergantung pada mereka).
Benjamin Staton
1
@BenjaminStaton Yah, karena dpkg -itidak peduli dengan dependensi, semua yang diinstal dengan itu tentu saja diinstal "secara manual".
Byte Commander