GNU/Linux >> Znalost Linux >  >> Linux

Jaké informace potřebuji k vyřešení problému se závislostí?

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:

  1. Nesplněné závislosti po použití úložiště backports
    :Uživatel
    zahrnul zdroje pro www.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í, ale www.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í.

  2. 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ýše apt-cache policy pkgname vám to řekne.

  3. 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í z dpkg ž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. Pokud apt-get -f install nefunguje, možná budete muset
    pracovat na dpkg úroveň opravit věci.


Linux
  1. Co potřebuji ke čtení databází Microsoft Access pomocí Pythonu?

  2. Co je příkaz k zobrazení všech verzí Java nainstalovaných v linuxu?

  3. Linux Audio Spectrum Analyzer

  1. Co potřebují správci systému vědět o používání Bash

  2. Rozbitý apt, chybějící závislosti, co teď?

  3. Informační bezpečnost 101:Co vaše firma potřebuje vědět

  1. Co se stalo s /etc/apt/apt.conf?

  2. Co je to VPN? Vše, co potřebujete vědět o VPN

  3. Moduly Perl potřebují modul::Build, ale není nainstalován