it-swarm-id.com

Bagaimana cara menginstal file deb, dengan dpkg -i atau dengan apt?

Saya memiliki paket deb untuk instalasi.

Haruskah saya menginstal dengan dpkg -i my.deb, atau oleh apt?

Apakah keduanya akan menangani masalah ketergantungan perangkat lunak dengan baik?

Jika dengan apt, bagaimana saya bisa menginstal dari deb dengan apt?

728
Tim

Ketika Anda menggunakan apt untuk menginstal paket, di bawah tenda ia menggunakan dpkg. Ketika Anda menginstal sebuah paket menggunakan apt, itu pertama kali membuat daftar semua dependensi dan mengunduhnya dari repositori.

Setelah unduhan selesai, ia memanggil dpkg untuk menginstal semua file itu, memenuhi semua dependensi.

Jadi jika Anda memiliki file .deb, Anda dapat menginstalnya dengan:

  1. Menggunakan:

    Sudo dpkg -i /path/to/deb/file
    Sudo apt-get install -f
    
  2. Menggunakan:

    Sudo apt install ./name.deb
    

    Atau

    Sudo apt install /path/to/package/name.deb
    

    Dengan versi lama apt-get Anda harus memindahkan file deb Anda ke direktori /var/cache/apt/archives/. Untuk keduanya, setelah menjalankan perintah ini, ia akan secara otomatis mengunduh dependensinya.

  3. Pertama-tama menginstal gdebi dan kemudian membuka file .deb Anda menggunakannya ( Klik kanan -> Buka dengan). Ini akan menginstal paket deb Anda dengan semua dependensinya.

    Catatan : APT mempertahankan indeks paket yang merupakan basis data dari paket yang tersedia di repo yang didefinisikan dalam /etc/apt/sources.list dan di direktori /etc/apt/sources.list.d. Semua metode ini akan gagal memenuhi ketergantungan perangkat lunak jika dependensi yang diperlukan oleh deb tidak ada dalam indeks paket.


Mengapa menggunakan Sudo apt-get install -f Setelah Sudo dpkg -i /path/to/deb/file (Sebagaimana disebutkan dalam metode 1)?

Dari man apt-get:

 -f, --fix-broken
           Fix; attempt to correct a system with broken dependencies in place.

Ketika dpkg menginstal sebuah paket dan ketergantungan paket tidak terpenuhi, ia meninggalkan paket dalam keadaan "tidak terkonfigurasi" dan paket itu dianggap rusak.

Perintah Sudo apt-get install -f Mencoba untuk memperbaiki paket yang rusak ini dengan menginstal ketergantungan yang hilang.

939
g_p

Instal file foo.deb Anda dengan dpkg -i foo.deb. Jika ada beberapa kesalahan dengan dependensi yang tidak terselesaikan, jalankan apt-get install -f Sesudahnya.

95
ihor_dvoretskyi

Inilah cara terbaik untuk menginstal .deb file di Ubuntu pada baris perintah:

Sudo gdebi skype.deb

Jika Anda belum menginstal gdebi, instal menggunakan Sudo apt install gdebi-core.

Kenapa gdebi?

gdebi akan mencari semua dependensi dari .deb file, dan akan menginstalnya sebelum mencoba menginstal .deb file. Saya menemukan ini jauh lebih disukai daripada Sudo dpkg -i skype.deb && Sudo apt install -f. Yang terakhir ini terlalu bersemangat untuk menghapus dependensi dalam situasi tertentu. Misalnya, ketika saya mencoba menginstal Skype, ia berusaha menghapus 96 paket (!), Termasuk paket seperti compiz dan unity! gdebi memberikan pesan kesalahan yang jauh lebih jelas:

 $ Sudo gdebi skype.deb
 Cannot install 'libqtgui:i386'

(Inilah solusi untuk masalah tertent , omong-omong.)

66
Flimm

Anda dapat menginstal paket .deb lokal dengan:

Sudo apt install ./foo.deb

Pastikan untuk menentukan jalur relatif atau absolut lokal (./ jika dalam direktori saat ini), jika tidak ia akan mencari foo.deb dalam repo jarak jauh dan gagal.

60
wisbucky

Periksa dependensi dengan dpkg -I my.deb dan apt-get install ketergantungan sebelum dpkg -i my.deb.

Mungkin Anda bisa menyalin my.deb di /var/cache/apt/archives dan instal langsung dengan apt-get tapi saya tidak pernah mencoba. Tidak berfungsi, apt-get dan dpkg sedang mencari paket yang terdaftar di arsip.

15
Alex

Jawaban paling sederhana adalah menggunakan dpkg dengan menjalankan dpkg -i packagename.deb. Anda kemudian dapat menghapusnya dengan menjalankan dpkg -r packagename.deb.
apt-get adalah penginstal tingkat yang lebih tinggi berdasarkan dari dpkg, dan karenanya Anda dapat apt-get install packagename.deb.
Akan bermanfaat jika menambahkannya ke direktori arsip apt-get Anda (/var/cache/apt/archives) sehingga Anda dapat merujuknya sebagai paket dengan dependensi dan bukan arsip .deb mandiri.
Selain itu, dengan menambahkannya ke direktori arsip apt-get Anda, Anda memiliki kesempatan untuk menggunakan dependensi dengan apt-get install packagename. Ini akan memungkinkan Anda menginstalnya dengan dependensi yang ditambahkan secara manual alih-alih sistem berbasis arsip mandiri dpkg.

6
Interesting...

Apt-get modern dapat digunakan untuk menginstal paket hanya dengan apt-get install /path/to/package/name.deb.

(harus dilakukan sebagai edit pada jawaban atas tetapi ditolak - lihat https://unix.stackexchange.com/posts/159114/edit )

5