Olası kopya hakkında not:
AFAIK, Bu bir PPA ekledikten sonra karşılanmamış bağımlılıkları nasıl çözerim? Aksi takdirde, aşağıda bahsettiğim test problemini oradan cevaplayarak çözerek kanıtlayın.
Arka fon:
Daha önce Ubuntu 14.04.3LTS 64 bit kurulum şarabı nasıl düzeltilir ? Hedef paketin ( wine
) tüm özyinelemeli bağımlılıklarının elle / insan tarafından gözden geçirilmesi ile çözülmüştür .
Sorunu yeniden oluşturun (Test Örneği):
Sadece 1 sorun paketi ile basitleştirilmiş sessiz aynı durumu yaratalım.
- VirtualBox üzerine yeni Ubuntu 14.04 kurun.
- Depoyu açın
software-properties-gtk
ve etkinleştirinbackports
. Son paketler listesini al
sudo apt-get update
Yüklenebileceğini
apt-get -s install wine
onaylamak için çalıştırınwine
.libcgmanager0
Rahatsız edici paketi backportlardan yükleyin$ apt-cache policy libcgmanager0 libcgmanager0: Installed: 0.24-0ubuntu5 Candidate: 0.24-0ubuntu7.5 Version table: 0.39-2ubuntu2~ubuntu14.04.1 0 100 http://dz.archive.ubuntu.com/ubuntu/ trusty-backports/main amd64 Packages 0.24-0ubuntu7.5 0 500 http://dz.archive.ubuntu.com/ubuntu/ trusty-updates/main amd64 Packages 0.24-0ubuntu7.1 0 500 http://security.ubuntu.com/ubuntu/ trusty-security/main amd64 Packages *** 0.24-0ubuntu5 0 500 http://dz.archive.ubuntu.com/ubuntu/ trusty/main amd64 Packages 100 /var/lib/dpkg/status
Zorla
apt
yüklemeyelibcgmanager0
sürümü0.39-2ubuntu2~ubuntu14.04.1
sudo apt-get install libcgmanager0=0.39-2ubuntu2~ubuntu14.04.1
Şimdi kullanıcının aynı durumda arka planda bahsedilen sorudan sonuçlanıyoruz, şarap kurulumu karşılanmayan bağımlılıkla başarısız oluyor ve sadece ilk seviye bağımlılık paketlerini gösteriyor.
apt-get -s install wine
Reading package lists... Done Building dependency tree Reading state information... Done Some packages could not be installed. This may mean that you have requested an impossible situation or if you are using the unstable distribution that some required packages have not yet been created or been moved out of Incoming. The following information may help to resolve the situation: The following packages have unmet dependencies: wine : Depends: wine1.6 but it is not going to be installed E: Unable to correct problems, you have held broken packages.
apt-get -s install wine1.6
Reading package lists... Done Building dependency tree Reading state information... Done Some packages could not be installed. This may mean that you have requested an impossible situation or if you are using the unstable distribution that some required packages have not yet been created or been moved out of Incoming. The following information may help to resolve the situation: The following packages have unmet dependencies: wine1.6 : Depends: wine1.6-i386 (= 1:1.6.2-0ubuntu4) E: Unable to correct problems, you have held broken packages.
apt-get -s install wine1.6-i386
Reading package lists... Done Building dependency tree Reading state information... Done Some packages could not be installed. This may mean that you have requested an impossible situation or if you are using the unstable distribution that some required packages have not yet been created or been moved out of Incoming. The following information may help to resolve the situation: The following packages have unmet dependencies: wine1.6-i386:i386 : Depends: libglu1-mesa:i386 but it is not going to be installed or libglu1:i386 Depends: libgphoto2-6:i386 (>= 2.5.2) but it is not going to be installed Depends: libgphoto2-port10:i386 (>= 2.5.2) but it is not going to be installed Recommends: libsane:i386 but it is not going to be installed E: Unable to correct problems, you have held broken packages.
Bağımlılıkları apt-get install
tek tek takip etmek pratik değildir .
İdeal Çözüm:
Burada asıl mesele
apt
backports deposu , depodaki sürümden daha düşük önceliğe sahip olduğundanlibcgmanager0:i386
sürüm yüklenemedi0.39-2ubuntu2~ubuntu14.04.1
100
0.24-0ubuntu7.5
updates
500
apt
yüklenemedilibcgmanager0:i386
versiyonunu0.24-0ubuntu7.5
çünkülibcgmanager0:amd64
farklı bir sürümü ile birlikte yüklenir0.39-2ubuntu2~ubuntu14.04.1
En hızlı düzeltme, aynı i386 sürümünü backports'tan yüklemeye zorlamaktır
sudo apt-get install libcgmanager0:i386=0.39-2ubuntu2~ubuntu14.04.1
veya normal depolardan herhangi bir sürüme düşürün (amd64)
sudo apt-get install libcgmanager0=0.24-0ubuntu7.5
Denediğim yollar / araçlar:
- PPA'ların devre dışı bırakılmasının sorunla ilişkisi yoktur.
aptitude
Etkileşimli modda kullanmak , yalnızca birçok kaldırmaya sahip çözümler ( > 200 !!! ) getirir .apt-get install
Bağımlılık ağacını izleyerek manuel olarak kullanın . İlk ve ikinci düzey bağımlılıklar çatışma hakkında anlamlı bir mesaj vermediğinden pratik değildir.debfoster
özyinelemeli bağımlılıklar oluşturabilir, ancak yalnızca önceden yüklenmiş paketler için. Ancakwine
henüz yüklenmedi.
Konu / İlgi alanlarım:
Diyelim ki libcgmanager0
paket sorununu (veya tam olarak libcgmanager0:amd64=0.39-2ubuntu2~ubuntu14.04.1
kurulu olanı) bilmeden şarap yüklemek istiyorum .
Bir hata ayıklama yöntemi veya sorunlu paketin adını bilmek ve ne olduğunu hızlı bir şekilde anlamak için bir yol arıyorum.
Karşılanmayan bağımlılık problemleri genel olarak nasıl ayıklanır?
İç bağımlılık çözümleyiciyi izleyen
dpkg
/apt
/ içinde bazı yeni seçenekler olabiliraptitude
. Bulibcgmanager0
onun çıktısında gösterebilir .Bunun kanonik bir cevabı yoksa, herhangi biri bana özyinelemeli bağımlılıklar listesi oluşturmak için daha iyi bir yol gösterebilir veya sorunu çözmenize yardımcı olabilecek daha fazla ayrıntıyla bağımlılık çözücüyü simüle edebilir mi?
Neden tüm bağımlılıklar? Çünkü bir kerede tüm paketler için aşağıdaki komutların çıkışını kontrol etmek istiyorum.
apt-cache policy <all-dependencies>
apt-get -s install <all-dependencies>
libcgmanager
, bağımlılıkla mı ilgili? Bağımlılıkları tekrar tekrar listelemekten bahsettiniz. Denedin apt-rdepends
mi
wine
(veya etkilenen başka bir paketi) yüklemeye çalışırsanız ne olur -o Debug::pkgProblemResolver=yes
?
backports
sürüme ihtiyacınız var ?