Několikrát jsem viděl lidi s nenaplněnými závislostmi, které apt-get neřekne přímočaře, v čem je problém, jako je tento:
The following packages have unmet dependencies:
libgl1-mesa-dri:i386 : Depends: libdrm-intel1:i386 (>= 2.4.38) but it is not going to be installed
Depends: libdrm-nouveau2:i386 (>= 2.4.38) but it is not going to be installed
Depends: libdrm-radeon1:i386 (>= 2.4.31) but it is not going to be installed
Depends: libdrm2:i386 (>= 2.4.38) but it is not going to be installed
Depends: libglapi-mesa:i386 but it is not going to be installed
libgl1-mesa-glx:i386 : Depends: libdrm2:i386 (>= 2.3.1) but it is not going to be installed
Depends: libglapi-mesa:i386 (= 9.2.1-1ubuntu3) but it is not going to be installed
Depends: libx11-6:i386 (>= 2:1.4.99.1) but it is not going to be installed
Depends: libxcb-dri2-0:i386 (>= 1.8) but it is not going to be installed
Depends: libxcb-glx0:i386 (>= 1.8) but it is not going to be installed
Depends: libxcb1:i386 but it is not going to be installed
Depends: libxdamage1:i386 (>= 1:1.1) but it is not going to be installed
Depends: libxext6:i386 but it is not going to be installed
Depends: libxfixes3:i386 but it is not going to be installed
Depends: libxxf86vm1:i386 but it is not going to be installed
Vím, že procházení všech závislostí apt-get install libgl1-mesa-dri:i386 libdrm-intel1:i386
dokud nenarazím, je něco k dispozici, ale v tomto případě to bude bolestivá práce kvůli množství balíčků. Existuje snadnější způsob, jak to udělat?
Přijatá odpověď:
Rozumnou první věcí, kterou byste měli zkusit, je zeptat se apt, proč dělá to, co dělá. To lze provést pomocí -o Debug::pkgProblemResolver=yes
volba. Např.
apt-get -o Debug::pkgProblemResolver=yes install libgl1-mesa-dri:i386 libdrm-intel1:i386
Pokud apt není k dispozici, standardním přístupem k ladění těchto problémů je kontrola prioritních čísel dostupných verzí každého balíčku uvedeného v chybové zprávě. To se běžně provádí pomocí apt-cache policy
.
Chcete-li například použít pouze první část chybové zprávy, měli byste spustit
apt-cache policy libgl1-mesa-dri:i386 libdrm-intel1:i386 libdrm-nouveau2:i386 libdrm-radeon1:i386 libdrm2:i386 libglapi-mesa:i386
Jak se pak postupuje, záleží na tom, co to ukazuje. Často je také užitečné spustit právě
apt-cache policy
který zobrazí všechny dostupné zdroje balíčků spolu s jejich prioritními čísly. Tyto informace jsou obvykle uvedeny v jednom nebo obou z /etc/apt/sources.list
nebo /etc/apt/sources.list.d
.
Lidé, kteří se zde snaží získat pomoc, by měli nejprve zveřejnit výsledky těchto příkazů ve své otázce . To bude pravděpodobně dostatek informací k určení problému.
Související:UpdatePanel DataTable Issue?Příklady problémů ze skutečného života:
-
Nesplněné závislosti po použití úložiště backports
:Uživatel
zahrnul zdroje prowww.deb-multimedia.org
, aniž byste jej připnuli k nižší
prioritě. Nikdy nezahrnujte zdroje třetích stran, aniž byste to připnuli k
nižší prioritě. Pamatujte, že by to nemělo být nutné pro
dobře fungující úložiště, která poskytují balíčky pro výchozí
vydání, alewww.deb-multimedia.org
je dobře známý tím, že si nehraje
hezky s Debianem a obecně byste neměli věřit neznámým zdrojům.
Obecněji řečeno, pokud víte, že úložiště není navrženo pro použití s vaším
systémem , připněte jej s nižší prioritou. Např. testování/nestabilní zdroje na Debianu
stabilní. -
Nenaplněné závislosti:Uživatel
nějak dokázal nainstalovat verzi pythonu, která nebyla
výchozí verzí v jeho systému. Přirozeně se rozpoutalo peklo.
Morálka příběhu, ujistěte se, že instalujete pouze verze
balíčků, které jsou správné pro váš systém. Jak je uvedeno výšeapt-cache policy pkgname
vám to řekne. -
dpkg / apt-get chce nainstalovat a přepsat jiný
balíček:Uživatel se pokusil
nainstalovat balíčky, přestože jeho základnídpkg
databáze byla
rozbitá. Morální, pokud vidíte zprávy přicházející zdpkg
že něco
nebo něco jiného není v pořádku s vašimi balíčky, v tomto případě0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. 2 not fully installed or removed.
vaše databáze balíčků má problémy. Nejprve je opravte, než se pokusíte nainstalovat
cokoli jiného. Pokudapt-get -f install
nefunguje, možná budete muset
pracovat nadpkg
úroveň opravit věci.