Cara menginstal paket .deb lokal dengan apt-get

144

Apakah ada cara untuk menginstal paket store di HD Anda dengan apt-get apt-get install ./package.deb?

Jika tidak, bagaimana cara menangani dependensi dengan cara yang sangat sangat mudah?

Louis
sumber
Ini berfungsi sekarang. Jika Anda masih menggunakan SuperUser, dapatkah Anda memperbarui jawaban yang diterima? Lihat di bawah.
mikemaccana

Jawaban:

121

biasanya saya lakukan dpkg -i <deb file>, itu akan gagal mengatakan itu membutuhkan dependensi. Setelah itu ketika Anda melakukan apt-get updateitu akan mengatakan sesuatu seperti "dependensi siap untuk menginstal" Saya pikir itu kemudian menyarankan untuk digunakan apt-get install -f.

Setelah selesai, saya gunakan dpkg -ilagi.

Bekerja dengan baik untuk saya beberapa tahun terakhir.

sunting: tampak sedikit lebih jauh, tampaknya alat yang disebut gdebidapat melakukan ini sebagai gdebi [deb file].

Sirex
sumber
1
Terima kasih saya melakukan hal yang sama dengan "kesalahan" dpkg kemudian apt-get install -f dan berhasil.
Louis
2
gdebibekerja untuk saya, dan paling sederhana yang saya lihat sejauh ini.
ctrl-alt-delor
55

Sirex memilikinya kurang lebih benar, tetapi jawabannya tidak jelas. Saya baru saja menyelesaikan ini, jadi inilah yang saya lakukan:

sudo dpkg -i /path/to/filename.deb

Jika ini gagal dengan pesan tentang paket tergantung pada sesuatu yang tidak diinstal, Anda mungkin dapat memperbaikinya jika Anda menjalankan

sudo apt-get -f install

Ini akan menginstal dependensi (dengan asumsi mereka tersedia di repo yang diketahui oleh sistem Anda) DAN paket yang awalnya Anda minta instal ('f' adalah opsi 'perbaiki' dan 'y' adalah 'asumsikan ya untuk meminta' atau 'jangan tanya saya jika tidak apa-apa, cukup instal saja' pilihan - sangat berguna untuk skrip instalasi diam). Pada sistem yang saya gunakan, tidak perlu lagi menjalankan dpkg (Ubuntu lucid 10.04).

Saya menemukan itu menarik bahwa jika Anda meninggalkan -f ketika Anda menjalankan sudo apt-get install, itu akan mencantumkan paket Anda tidak dikonfigurasi karena ketergantungan yang belum terselesaikan serta menyarankan:Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).

Sunting:

Jika Anda ingin menginstal tanpa harus menjawab 'y' untuk semua pertanyaan, Anda dapat menambahkan ypengubah seperti yang saya awalnya termasuk: sudo apt-get -fy install. Namun, seorang komentator menunjukkan bahwa apt terkadang akan menyarankan agar Anda menghapus seluruh lingkungan desktop Anda. Saya melakukan pekerjaan ini di VM dan tidak memiliki kekhawatiran itu, tetapi posting ini telah diperbarui untuk mencerminkan menjadi sedikit lebih hati-hati.

Akrikos
sumber
Jika saya memiliki semua file paket yang sudah ada dalam direktori, apakah ada cara untuk mengatakan bahwa ini adalah repositori baru, jadi saya tidak perlu memaksanya menginstal apa pun tanpa dependensi?
Berry Tsakala
2
Maaf, tapi saya tidak tahu. Saya sarankan menanyakan hal itu sebagai pertanyaan tingkat atas lainnya.
Akrikos
Gila aneh bahwa ini diperlukan. Pada raspian, ini membutuhkan sudo (untuk dpkg dan apt-get):, sudo dpkg -i mypackages.debdll.
Brent Faust
@Rubistro mengakses root yang diperlukan pada semua sistem. Saya kira jawaban diasumsikan bahwa perintah dijalankan oleh root (misalnya dari shell root interaktif, atau skrip yang dijalankan sebagai root).
Amos Shapira
2
Untuk Anda sendiri yang baik, jangan tidak menambahkan -ypilihan. Sangat umum bagi apt untuk menyarankan, misalnya, menghapus seluruh lingkungan desktop Anda jika Anda mencoba ini dengan paket yang salah pada waktu yang salah (setidaknya pada Debian).
oseiskar
45

Anda juga dapat menginstal file deb menggunakan gdebi. Menjalankan perintah di bawah ini untuk menginstal gdebi,

sudo apt-get install gdebi-core

Instal paket .deb dengan gdebi,

sudo gdebi /path/to/filename.deb

Ini juga memperbaiki dependensi.

Avinash Raj
sumber
4
Perhatikan bahwa gdebi hanya membutuhkan satu argumen dan diam - diam menjatuhkan sisanya ke lantai. Ini berarti jika Anda menginstal banyak deb pada saat yang sama (mungkin karena mereka saling bergantung) Anda harus hati-hati menyusun gdebiperintah yang memungkinkan mereka untuk menginstal. imo setengah ini mengalahkan tujuan gdebi, tetapi Anda mungkin masih merasa berguna untuk satu file
Anthony Sottile
@Anthony thenfind -name *.deb -exec gdebi {} \;
jjmontes
3
@jjmontes yang hanya akan berfungsi jika interdependensi berada dalam urutan abjad yang saya inginkan jarang terjadi
Anthony Sottile
Saya mengikuti freesoftwaremagazine.com/articles/… ini (bug repo lokal harus di / var / www / html / debs) dan synaptic terus berusaha mengunduh dari remote bahkan tanpa internet, jadi gdebi bekerja hebat dengan repo lokal ! juga, file deb. Haruschmod +r *.deb
Aquarius Power
34

Ya, perintah yang Anda usulkan benar.

sudo apt-get install ./package.deb

atau

sudo apt install ./package.deb

akan menginstal paket yang Anda dapatkan dari sumber lain selain APT dan pada saat yang sama menggunakan kemampuan APT untuk menyelesaikan ketergantungannya secara otomatis. Sayangnya, apt-getfitur ini tidak didokumentasikan di halaman manual .

Lihat https://askubuntu.com/a/769542/250300 dan https://askubuntu.com/a/795048/250300 untuk detailnya.

Melebius
sumber
8
Ini seharusnya jawaban yang diterima.
Peter
Versi apt-get mana yang menambahkan kemampuan ini?
Kurt Fitzner
@KurtFitzner Ia ditambahkan dalam APT 1.1 per pengumuman rilis (ditemukan melalui askubuntu.com/a/795048/250300 ).
Melebius