Pertanyaan Bagaimana cara membiarkan `dpkg -i` menginstal dependensi untuk saya?


Katakanlah, saya punya foo-1.2.3.deb yang tergantung pada perl dan pythonNamun, menjalankan perintah:

dpkg -i ./foo-1.2.3.deb

tidak akan menginstal dependensi ini. Jadi saya harus apt-get install perl python dengan tangan.

Bagaimana membuat dpkg -i menginstal dependensi ini untuk saya secara otomatis?


260
2018-05-04 13:11


asal


Kemungkinan duplikat dari Bagaimana cara mengambil secara otomatis dependensi yang hilang ketika menginstal perangkat lunak dari .deb? - pd12
@ pd12: Hore untuk referensi melingkar! :-D - David Foerster
heh, saya memutuskan untuk menghubungkan keduanya dan melihat mana yang akan dipilih mod. - pd12
Sungguh menakjubkan bahwa pada tahun 2016, a .Deb instalasi grafis masih gagal tanpa memberitahu pengguna apa pun tentang dependensi yang hilang. - Dan Dascalescu


Jawaban:


Setelah menggunakan dpkg, menjalankan perintah berikut membantu saya untuk menginstal dependensi yang diperlukan:

sudo apt-get -f install

Secara keseluruhan, terminal Anda akan terlihat seperti ini:

$ sudo dpkg -i package_with_unsatisfied_dependencies.deb
dpkg: dependency problems prevent ... 
[additional messages]

$ sudo apt-get -f install
[apt messages]
Setting up [dependency]...
Setting up package_with_unsatisfied_dependencies...

Melihat garis tentang Setting up package_with_unsatisfied_dependencies. Ini perbaikan (dan selesai) instalasi package_with_unsatisfied_dependencies.deb.


348
2018-05-04 15:38



Haruskah saya jalankan sudo dpkg -i mypackage.deb lagi? - Muhammad Gelbana
Setelah berlari sudo apt-get -f install paket saya dan semuanya sudah terinstal. Lari sudo dpkg -i my_package.deb tidak diperlukan dan hanya akan menginstal paket lagi. - Gus E
Mengikuti karya di Ubuntu 14.04: sudo dpkg -i package.deb; sudo apt-get -f install; sudo dpkg -i package.deb. Pertama dpkg -i menjalankan dependensi tanda, apt-get -f install menginstal dependensi yang dibutuhkan dan yang kedua dpkg -iberhasil menginstal paket. Perhatikan itu apt-get install -f adalah perintah yang sama sekali berbeda. - Mikko Rantalainen
@Hitam tidak, jangan lakukan dpkg -i --force; yang akan memaksa-memasang paket yang rusak! Lari dpkg /tanpa/ --force akan membuat entri yang diperlukan dalam basis data paket sehingga apt-get -f install akan melakukan hal yang benar. - Brian A. Henning
@Lotharyx: Saya tidak dapat mencobanya sekarang, tetapi saya tidak berpikir dpkg tanpa paksaan (yang gagal karena dependensi yang hilang) akan membuat entri dalam basis data paket - ysth


Anda dapat menginstal gdebi-core, yang merupakan versi baris perintah penginstal paket GDebi dari 10.04 dan sebelumnya. Di versi Ubuntu yang lebih baru, Pusat Perangkat Lunak digunakan untuk menginstal debs, yang tidak memiliki baris perintah yang setara.

Untuk menginstal paket deb menggunakan gdebi, jalankan saja:

sudo gdebi my_package_1.0.deb

108
2018-05-04 14:47





Gdebi

gdebi menginstal paket deb dan dependensinya. Untuk menggunakannya, jalankan:

sudo gdebi package.deb

Di versi Ubuntu yang lebih baru, ini tidak diinstal secara default, jadi Anda harus menginstalnya dari repositori.

Lihat man gdebi untuk daftar opsi lengkap.

gdebi adalah baris perintah yang setara dengan alat grafis dengan nama yang sama yang digunakan untuk dimasukkan secara default di Ubuntu. Perintah untuk alat grafis gdebi-gtk dan memiliki fungsi serupa:

gdebi-gtk


35
2018-05-04 16:56



gdebi-gtk tidak akan menampilkan deps yang diperlukan (versi yang saya miliki di sini setidaknya, dan sepertinya bug), tetapi baris perintah akan! Jika kita memiliki mesin lain dengan paket yang bisa kita gunakan dpkg-repack di atasnya berdasarkan daftar deps seperti ini :) - Aquarius Power


dimulai dengan apt 1.1 (tersedia di Xenial (16.04), peregangan) apt install juga memungkinkan file lokal:

sudo apt install ./foo-1.2.3.deb

Jauh lebih sederhana dan bersih.

Lihat rilis pengumuman


27
2017-07-05 09:23



Sudah waktunya ini tersedia - Mike
Solusi ini tidak berfungsi. Semua yang terjadi adalah daftar kesalahan. - Billy S
@BillyS menyesal mendengar bahwa itu tidak berhasil untuk Anda, tetapi tanpa versi distro yang Anda gunakan dan kesalahan apa yang Anda dapatkan, hal ini tidak dapat ditindaklanjuti sama sekali. - textshell
Perintah itu tidak bekerja untuk saya tetapi apt ./install foo-1.2.3.deb bekerja. - Cenk Alti
Mengoreksi perintah, komentar di atas mengacu pada versi jawaban sebelumnya yang tidak diperlukan ./ atau jalan - Zanna


berlari

sudo apt-get install -f

setelah menginstal paket dengan dpkg dapat menyelesaikan masalah yang rusak (setidaknya orang apt-get mengatakannya ...). Akan saya perbarui ketika saya akan memeriksanya.


18
2018-05-04 13:17



Haruskah saya jalankan sudo dpkg -i mypackage.deb lagi? - Muhammad Gelbana
apt-get -f install bekerja, tapi apt-get install -f tidak sama. - 200_success


dpkg tidak memiliki dukungan ketergantungan. Ada cara di sekitarnya tetapi itu akan mengharuskan Anda untuk membuat database lokal (dan dengan demikian Anda sudah tahu dependensi) dan itu dianggap usang (...).

Apakah harus baris perintah? (server menginstal?) Jika demikian juga lihatlah apt-get -f tetapi hati-hati: memecahkan dependensi setelah menginstal dapat membuat Anda berakhir dengan sistem yang rusak.

gdebi (GUI frontend) digunakan untuk dapat melakukan ini tetapi diganti dengan USC.

Bagaimana Anda mengunduh berkas .deb. Beberapa fitur 11.04 yang baru adalah penanganan .deb yang diunduh dari sebuah situs web: itu menjadi opend di USC sehingga dependensi akan dipecahkan oleh penginstal.

EDIT berdasarkan komentar oleh andrew: sudo gdebi foo-1.2.3.deb  akan melakukan trik !!


9
2018-05-04 13:32



gdebi masih bisa digunakan untuk ini. Pusat Perangkat Lunak sekarang hanya aplikasi default. Juga, seperti catatan Chen Xiao-Long, gdebi juga dapat digunakan pada baris perintah. - andrewsomething
keren! maka pertanyaan itu memiliki jawaban karena gdebi dapat digunakan pada commandline juga sepertinya. - Rinzwind
Ini harus menjadi jawaban yang diterima. - prosti


Sebagai alternatif untuk gdebi-gtk Anda dapat menggunakan Ubuntu Software Center.

Klik dua kali pada paket dan tombol instal akan tersedia.


3
2018-05-10 07:55