Ðàçðåøåíèå êîíôëèêòîâ çàâèñèìîñòåé. |
Èç êíèãè Øðåäåðà “Linux. Ñáîðíèê ðåöåïòîâ”. Âñå íèæåñêàçàííîå ïðîâåðåíî è ðàáîòàåò.
Ïðîáëåìà
Ïðîãðàììà íå óñòàíàâëèâàåòñÿ èç-çà ïðîáëåì ñ çàâèñèìîñòÿìè, èëè êîìàíäà apt-get dist-upgrade îñòàâëÿåò ïàêåòû, êîòîðûå íóæíî óäàëèòü.
Ðåøåíèå
Ñóùåñòâóåò íåñêîëüêî êîìàíä, êîòîðûå ìîãóò ïðèãîäèòüñÿ äëÿ ðåøåíèÿ ýòîé çàäà÷è; ïåðå÷èñëèì èõ â òîì ïîðÿäêå, â êîòîðîì èõ ñòîèò ïîïðîáîâàòü. Äîïóñòèì, ïðîáëåìû âîçíèêëè ñ ïàêåòîì libpam-modules, êîòîðûé íå æåëàåò îáíîâëÿòüñÿ:
# apt-get install libpam-modules
The following packages have unmet dependencies:
libpam-modules: Depends: Iibdb3 (>=3.2.9-19.1) but 3.2.9-19 is to be installed
E: Broken packages
Åñëè âû ðàáîòàåòå â ñìåøàííîé ñèñòåìå, äëÿ íà÷àëà ïîïðîáóéòå óêàçàòü âåðñèþ:
# apt-get install -t stable libpam-modules
Åñëè ýòî íå ïîìîãàåò èëè ñèñòåìà íå ÿâëÿåòñÿ ñìåøàííîé, ïîïðîáóéòå âîñïîëüçîâàòüñÿ ñèñòåìîé ðàçðåøåíèÿ êîíôëèêòîâ Debian:
# apt-get -f install
Çàòåì âûïîëíèòå êîìàíäó:
# dpkg --configure -a
È ñíîâà ïîâòîðèòå êîìàíäó:
# apt-get -f install
Åñëè áóäåò ïîëó÷åí ñëåäóþùèé îòâåò, çíà÷èò, ïîïûòêà çàâåðøèëàñü íåóäà÷åé:
Reading Package Lists… Done
Building Dependency Tree… Done
0 upgraded, 0 newly installed. 0 to remove and 1 not upgraded.
Òåïåðü ïðîâåðüòå, ÷òî ïðîèçîéäåò ïðè óäàëåíèè ñóùåñòâóþùåãî ïàêåòà libpam- modules:
# apt-get remove –dry-run libpam-modules
Reading Package Lists… Done
Building Dependency Tree… Done
The following packages will be REMOVED:
adduser adminmenu apache at base-config courier-imap courier-imap-ssl courier-pop courier-pop-ssl cron cupsys cupsys-driver-gimpprint diet-elements dict-foldoc dict-gcide diet-jargon dict-vera dict-wn dictd gdm2…
WARNING: The following essential packages will be removed
This should NOT be done unless you know exactly what you are doing!
login libpam-modules (due to login)
 äàííîì ñëó÷àå èñïðàâëåíèå êîíôëèêòîâ çàâèñèìîñòåé ïîòðåáóåò åäâà ëè íå ïîëíîé ïåðåñòðîéêè ñèñòåìû. ×àùå ïðîáëåìû îãðàíè÷èâàþòñÿ íåñêîëüêèìè ïàêåòàìè.  ýòîì ñëó÷àå íà÷èíàéòå óäàëÿòü íàèìåíåå âàæíûå èç íèõ, ïîêà êîíôëèêòû çàâèñèìîñòåé íå áóäóò ðàçðåøåíû, à çàòåì ïåðåóñòàíîâèòå âñå ïàêåòû, êîòîðûå âàì íóæíû.
Åñëè apt-get -u dist-upgrage îòîáðàæàåò êàêèå-ëèáî çàäåðæàííûå (held) ïàêåòû, îò íèõ ëó÷øå èçáàâèòüñÿ. Ïàêåòû óäåðæèâàþòñÿ èç-çà êîíôëèêòîâ çàâèñèìîñòåé, êîòîðûå íå óäàåòñÿ ðàçðåøèòü apt. Ïîïðîáóéòå âîñïîëüçîâàòüñÿ ñëåäóþùåé êîìàíäîé äëÿ ïîèñêà è èñïðàâëåíèÿ êîíôëèêòîâ:
# apt-get -î Debug::pkgProblemResolver=yes dist-upgrade
Åñëè èñïðàâèòü êîíôëèêòû íå óäàåòñÿ, êîìàíäà çàâåðøàåòñÿ ñ ñîîáùåíèåì
0 upgraded. 0 newly installed , 0 to remove and 6 not upgraded.
Óäàëÿéòå held-ïàêåòû îäèí çà îäíèì, êàæäûé ðàç çàïóñêàÿ dist-upgrade, ïîêà íå îñòàíåòñÿ íè îäíîãî çàäåðæàííîãî ïàêåòà. Çàòåì óñòàíîâèòå çàíîâî âñå íåîáõîäèìûå ïàêåòû. Íå çàáóäüòå èñïîëüçîâàòü êëþ÷ –dry-run, ÷òîáû çàðàíåå çíàòü îáî âñåõ ïîñëåäñòâèÿõ:
# apt-get remove –dry-run libsdl-perl
| Ðóáðèêè: | Äîêóìåíòàöèÿ |
| Êîììåíòèðîâàòü | « Ïðåä. çàïèñü — Ê äíåâíèêó — Ñëåä. çàïèñü » | Ñòðàíèöû: [1] [Íîâûå] |