Dpkg -i `nin benim için bağımlılıkları kurmasına nasıl izin verilir?


324

Diyelim ki foo-1.2.3.debhangisi bağlı perlve buna bağlı olarak pythonçalışan komut:

dpkg -i ./foo-1.2.3.deb

bu bağımlılıkları yüklemeyecek. Bu yüzden apt-get install perl pythonel ile yapmalıyım .

Nasıl yapmak dpkg -ibenim için otomatik olarak bu bağımlılıkları yüklemek?



5
@ pd12: Dairesel referanslar için yaşasın! :-D
David Foerster

her ikisini de birbirine bağlamaya ve modların hangisini seçeceğini görmeye karar verdim.
pd12

Yanıtlar:


416

Kullandıktan sonra dpkg, aşağıdaki komutu çalıştırmak gerekli bağımlılıkları kurmamda bana yardımcı oldu:

sudo apt-get -f install

Sonuçta terminaliniz şöyle görünmelidir:

$ 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...

Hakkında satır dikkat edinSetting up package_with_unsatisfied_dependencies . Bu , kurulumunu düzeltir (ve tamamlar) package_with_unsatisfied_dependencies.deb.


8
sudo dpkg -i mypackage.debTekrar koşmalı mıyım ?
Muhammad Gelbana

23
sudo apt-get -f installPaketimi çalıştırdıktan sonra ve bağımlılıkların hepsi kuruldu. Çalışmak sudo dpkg -i my_package.debgereksizdir ve sadece paketi tekrar kuracaktır.
Gus E,

5
Ubuntu 14.04 üzerinde çalışmalarını takiben: sudo dpkg -i package.deb; sudo apt-get -f install; sudo dpkg -i package.deb. İlk dpkg -içalıştırma bağımlılıkları işaretler, apt-get -f installgerekli bağımlılıkları kurar, ikincisi dpkg -ipaketi başarılı bir şekilde kurar. Bunun apt-get install -ftamamen farklı bir komut olduğuna dikkat edin .
Mikko Rantalainen

1
@ noh hayır, yapma dpkg -i --force; bu zorla bozulan bir paketi kurmaya zorlar! Çalıştırmak dpkg/ --forceyapmak / olmadan paket veritabanına gereken girişi apt-get -f installyapmak, doğru olanı yapmaktır.
Brian A. Henning,

@Lotharyx: Şu anda deneyemem, ancak zorla dpkg'nin (eksik bağımlılıklar nedeniyle başarısız olan) paket veritabanına giriş yapabileceğini
düşünmedim

111

Sen yükleyebilir gdebi-core10.04 ve daha önceki onu GDebi paket yükleyici komut satırı versiyonu olan. Ubuntu'nun yeni sürümlerinde, Yazılım Merkezi komut satırına eşdeğer olmayan borçları yüklemek için kullanılır.

Gdebi kullanarak bir deb paketini kurmak için, sadece şunu çalıştırın:

sudo gdebi my_package_1.0.deb

64

apt 1.1 ile başlayan (Xenial'da mevcut (16.04), genişlet) apt installyerel dosyalara da izin verir:

sudo apt install ./foo-1.2.3.deb

Çok daha basit ve temiz.

Sürüm duyurularına bakın


4
Bu kullanılabilir zamanı geldi
Mike

Bu çözüm işe yaramadı. Bütün bunlar bir hata listesiydi.
Billy S,

@BillyS sizin için işe yaramadığını duyduğuma üzüldüm, ancak kullandığınız dağıtım sürümü olmadan ve bununla ilgili yaptığınız hataları yapamazsınız.
textshell

Komuta benim için işe yaramadı ama apt ./install foo-1.2.3.debçalıştı.
Cenk Altı

1
Komutu düzeltildi, yukarıdaki yorumlar gerekli ./ya da yolu
özleyen

38

Gdebi

gdebibir deb paketi ve bağımlılıklarını kurar. Çalıştırmayı kullanmak için:

sudo gdebi package.deb

Ubuntu'nun yeni sürümlerinde, bu varsayılan olarak yüklenmez, bu yüzden onu depolardan yüklemeniz gerekecektir.

man gdebiSeçeneklerin tam listesi için bkz .

gdebiUbuntu’da varsayılan olarak dahil edilmiş aynı addaki grafik aracına eşdeğer komut satırıdır. Grafiksel aracın komutu gdebi-gtkbenzer bir işlevselliğe sahiptir:

Gdebi-gtk


gdebi-gtk gerekli diskleri göstermeyecek (en azından burada sürüm var ve bir hataya benziyor), ancak komut satırı! Paketleri olan başka bir makinemiz varsa dpkg-repack, bu tür deps listesine dayanarak kullanabiliriz :)
Aquarius Power

21

koşu

sudo apt-get install -f

dpkg ile paket kurulduktan sonra kırılan bağımlılıkları çözebilir (en azından adam apt-get söyleyin ...). Kontrol edeceğim zaman güncelleyeceğim.


sudo dpkg -i mypackage.debTekrar koşmalı mıyım ?
Muhammad Gelbana

3
apt-get -f installçalışır, ancak apt-get install -faynı değildir.
200_success

9

dpkg bağımlılık desteğine sahip değildir. Çevresinde bir yol var, ancak bu sizin yerel bir veritabanı oluşturmanızı gerektirir (ve böylece bağımlılıkları zaten biliyorsunuzdur) ve eski (…) olarak kabul edilir.

Komut satırı olmak zorunda mı? (sunucu kurulumu?) Öyleyse, bir göz atın apt-get -fama dikkatli olun: kurulumdan sonra bağımlılıkları çözmek size kırık bir sistem verebilir.

gdebi (gui frontend) bunu yapabilirdi ancak USC ile yer değiştirdi.

.Deb dosyasını nasıl indirdiniz? Yeni 11.04 özelliklerinden bazıları, bir web sitesinden indirilen .deb’ın kullanımıdır: USC’de olup bağımlılıklar yükleyici tarafından çözülecektir.

Andrew tarafından yapılan yoruma göre EDIT: sudo gdebi foo-1.2.3.deb hile yapardı !!


gdebi hala bunun için kullanılabilir. Yazılım Merkezi artık sadece varsayılan uygulama. Ayrıca, Chen Xiao-Long'un not ettiği gibi, gdebi komut satırında da kullanılabilir.
andrews, bir şey olabilir

güzel! o zaman sorunun cevabı var çünkü gdebi komut satırında da kullanılabiliyor.
Rinzwind

Bu kabul edilen cevap olmalı.
prosti

3

Alternatif olarak gdebi-gtkUbuntu Yazılım Merkezi'ni kullanabilirsiniz.

Paket üzerine çift tıklayın ve bir yükleme butonu mevcut olmalıdır.


3

dpkg-dep-instAşağıdaki içeriğe sahip bir dosya oluşturabilirsiniz .

#!/bin/bash

DEBIAN_FILE1=$1
dpkg -i $DEBIAN_FILE1 || apt-get --fix-broken install

Dosyayı ana klasörünüzde yarattığınızı farz ediyorum. İle çalıştırılabilir hale chmod +x dpkg-dep-instve taşımak /usr/local/binile sudo cp dpkg-dep-inst /usr/local/bin.

Artık debian paketini bağımlılıklarla birlikte otomatik olarak kurabilirsiniz:

sudo dpkg-dep-inst foo-1.2.3.deb

1
apt-get --yes --fix-broken installSabitlemeyi kullanın ve otomatik hale getirin.
Lucas

@ Hayır Hayır, genel olarak değil.
BuZZ-dEE

1

Ben sadece bu problemle karşılaştım. Arama apt-get install -folacak değil yüklemek önerilen olsa da, bağımlılıkları! Bunun için tek geçici çözüm, daha sonra yerel bir depo oluşturmak ve /etc/apt/sources.listörneğin:

apt-ftparchive packages . > Packages && gzip < Packages > Packages.gz
sudo echo "deb file://$PWD /" >> /etc/apt/sources.list
sudo apt-get update

0

Aslında cevap, dpkgpaket yöneticisinin bağımlılıkları kutudan çıkaramayacağıdır. Sen kam man dpkgve bunu öğrendin. Yani gibi araçları kullanmak gerekir apt, apt-get, aptitude, ..., dayalı dpkg.

Aynı durumun rpmdiğer Linux yarımkürede paket yöneticisi için olduğunu söyleyebilirim . rmpbağımlılık tabanlı kurulum yapmak için tasarlanmamıştır. Tek paketleri yükleyebilir ve kullanmak bağımlılıkları yüklemek için yum, urpmi, up2datebunların hepsi RPM dayanmaktadır.

Daha önce de belirtildiği gibi, paketleri dpkgdoğrudan monte etmek gibi hafif bir tehlike vardır , çünkü daha sonra bağımlılık çözme çözümü, @Rinzwind'in belirtildiği gibi kırılmış bir sistemle sonuçlanabilir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.