Hoe onvervulde afhankelijkheden op Ubuntu te repareren



Probeer Ons Instrument Voor Het Oplossen Van Problemen

Fout De volgende pakketten hebben niet-vervulde afhankelijkheden heeft Ubuntu-gebruikers al een tijdje geplaagd, en er zijn steeds meer waarnemingen van de fout in verschillende versies van Ubuntu. Het APT-pakketbeheersysteem is gemakkelijk te gebruiken, maar in sommige gevallen, zoals wanneer u afhankelijkheden van derden gebruikt, kunt u deze fout krijgen van apt-get.



Dit gebeurt wanneer u iets probeert te installeren met het apt-systeem via een terminal, en de installatie mislukt zonder enig duidelijk probleem. Dit probleem is niet beperkt tot een bepaald programma, maar het kan bij nogal wat van hen voorkomen. Dit komt omdat het probleem bij het apt-systeem ligt en niet bij het programma dat u installeert.



Daar zijn gelukkig nogal wat oplossingen voor, waarvan sommige gemakkelijker te doen zijn, en andere moeilijker, maar als je de instructies in de onderstaande methoden volgt, ben je de fout binnen de kortste keren kwijt.



Opmerking: voordat u doorgaat met een van de methoden, is het raadzaam een ​​back-up te maken van configuratiebestanden zoals zodat u eventuele wijzigingen ongedaan kunt maken voor het geval er iets misgaat. Dit wordt gedaan door de volgende stappen te volgen:

  1. Druk tegelijkertijd op Alt, Ctrl en T op uw toetsenbord om een ​​Terminal te openen.
  2. Typ in en druk op Enter.
  3. Als het vorige commando klaar is, typ je sudo cp / var / lib / dpkg / status /var/lib/dpkg/status.original in en druk je nogmaals op Enter.

Methode 1: Gebruik de parameter -f

Dit is de gemakkelijkste om te proberen en u hoeft slechts twee letters meer toe te voegen aan de opdracht die u typt. In plaats van gebruiken sudo apt-get install PACKAGENAME, waarbij PACKAGENAME het pakket is dat u probeert te installeren met het apt-systeem, gebruikt u sudo apt-get install -f . De -f parameter zal proberen om een ​​systeem te corrigeren dat verbroken afhankelijkheden heeft, waarna u het betreffende pakket kunt installeren.

  1. Open een Terminal door te drukken Ctrl, Alt en T tegelijkertijd op uw toetsenbord.
  2. Typ in sudo apt-get install -f en druk op Enter om het uit te voeren.
  3. Als het klaar is, typ je in sudo dpkg - configureer -a, druk op Enter om het uit te voeren en voer het commando uit stap 2 nog een keer.

Methode 2: Gebruik Aptitude

Bekwaamheid is een alternatief voor apt-get die u kunt gebruiken als pakketbeheerder op een hoger niveau. U kunt het gebruiken om te proberen uw pakket ermee te installeren, in plaats van apt-get, maar eerst moet u het installeren bekwaamheid.



  1. Druk tegelijkertijd op de Ctrl, Alt, en T toetsen op uw toetsenbord om een
  2. Typ in sudo apt-get install aptitude en druk op Enter om de opdracht uit te voeren.
  3. Typ in sudo aptitude install PACKAGENAME, waarbij PAKKETNAAM het pakket is dat u installeert, en druk op Enter om het uit te voeren. Dit zal proberen om het pakket te installeren via aptitude in plaats van apt-get, wat mogelijk het probleem van de onvervulde afhankelijkheden zou moeten oplossen.

Methode 3: Zorg ervoor dat de beperkte opslagplaatsen en universe-opslagplaatsen zijn ingeschakeld en probeer een betere server

  1. Druk tegelijkertijd op Alles en F2 typ op uw computer software-eigenschappen-gtk en druk op
  2. In de Ubuntu-software tabblad, zorg ervoor dat alle repositories (hoofd, universum, beperkt, multiversum) zijn ingeschakeld.
  3. Klik op de lijst met servers waar het staat Downloaden van, en kies
  4. Klik Selecteer Beste server.
  5. druk op Alt, Ctrl en T gelijktijdig om een ​​terminal te openen en typ sudo apt-get update, druk vervolgens op. Zodra het programma is uitgevoerd, probeert u de software opnieuw te installeren.

Methode 4: Maak de pakketdatabase schoon

Een beschadigde pakketdatabase is een mogelijke oorzaak voor niet-vervulde afhankelijkheden, evenals voor het niet goed installeren van pakketten. Het opschonen van de pakketdatabase kan dit echter oplossen en u kunt het doen met twee opdrachten, die ik hieronder zal uitleggen. Druk echter allereerst op Ctrl, Alt en T om een ​​Terminal te openen, en vergeet niet te klikken Enter na het commando om het uit te voeren.

  1. sudo apt-get clean zal de lokale repository opschonen van alle opgehaalde pakketbestanden (.deb). Het zal alles behalve de vergrendelingsbestanden verwijderen uit / var / cache / apt / archieven, en / var / cache / apt / archieven / gedeeltelijk /.
  2. sudo apt-get autoclean zal ook de opgehaalde bestanden opschonen, maar in tegenstelling tot het vorige commando, verwijdert deze alleen pakketten die je niet meer kunt downloaden en die vrijwel nutteloos zijn.

Methode 5: Verwijder alle vastgehouden pakketten

Vastgehouden pakketten worden feitelijk vastgehouden omdat er afhankelijkheidsproblemen en conflicten zijn die apt kan niet oplossen. Het elimineren van dergelijke pakketten betekent dat er geen dergelijke conflicten meer zullen zijn, en kan bijgevolg uw probleem oplossen.

  1. Open een Terminal door te drukken Ctrl, Alt en T
  2. Typ in sudo apt-get -u dist-upgrade en druk op Als er vastgehouden pakketten zijn, zal het ze laten zien, en het is aan jou om ze te elimineren.
  3. Probeer eerst te rennen

sudo apt-get -o Debug :: pkgProblemResolver = ja dist-upgrade

en kijk of het het probleem oplost. Als het wordt afgesloten met X niet geüpgraded aan het einde, waar X het aantal vastgehouden pakketten is, moet u ze een voor een verwijderen.

  1. Gebruik om een ​​vastgehouden pakket te verwijderen sudo apt-get remove –dry-run PAKKETNAAM (PACKAGENAME is het pakket dat u probeert te verwijderen) . De -oefening parameter zorgt ervoor dat u op de hoogte bent van wat er daarna gebeurt. Als je alle pakketten hebt verwijderd, probeer dan het pakket te installeren dat het probleem in de eerste plaats veroorzaakte, en kijk wat er gebeurt.

Methode 6: PPA's opschonen / verwijderen / uitschakelen

Persoonlijke pakketarchieven zijn repositories die worden gehost op het Launchpad en worden gebruikt om pakketten te upgraden of te installeren die normaal niet beschikbaar zijn in de officiële repositories van Ubuntu. Ze zijn meestal een oorzaak van onvervulde afhankelijkheden, vooral wanneer ze worden gebruikt om een ​​bestaand pakket te upgraden vanuit de Ubuntu-repository. U kunt ze uitschakelen, verwijderen of opschonen.

Uitschakelen betekent dat pakketten die vanaf die PPA zijn geïnstalleerd, geen updates meer krijgen.

  1. Druk tegelijkertijd op Alles en F2, en loop software-eigenschappen-gtk.
  2. Van de Andere software tabblad vindt u twee regels voor elke PPA, waarvan één voor de broncode en één voor het gecompileerde pakket. Om een ​​PPA uit te schakelen, moet u schakel beide regels uit.

Doorspoelen betekent dat alle pakketten in de geselecteerde PPA worden gedowngraded naar de versie in de officiële repositories en ook de PPA uitschakelen. Om PPA Purge te installeren, zou je kunnen gebruiken sudo apt-get install ppa-purge, maar gezien het feit dat de apt is verbroken, moet u dit commando gebruiken in de Terminal ( Alt, Ctrl en T gelijktijdig dan Enter rennen):

mkdir ppa-purge && cd ppa-purge && wget http://mirror.pnl.gov/ubuntu/pool/universe/p/ppa-purge/ppa-purge_0.2.8+bzr56_all.deb && wget http: // mirror. pnl.gov/ubuntu//pool/main/a/aptitude/aptitude_0.6.6-1ubuntu1_i386.deb && sudo dpkg -i ./*.deb

Ren vervolgens sudo ppa-purge ppa: someppa / ppa om de geselecteerde PPA te zuiveren. Omdat PPA Purge echter nog steeds geen PPA verwijdert, kunt u de onderstaande opdrachten gebruiken om de PPA te verwijderen. Negeer de eerste als u niet van plan bent het geïnstalleerde pakket te verwijderen.

  1. sudo apt-get autoremove –purge PAKKETNAAM
  2. sudo add-apt-repository –remove ppa: someppa / ppa
  3. sudo apt-get autoclean

U zou achteraf het benodigde pakket moeten kunnen installeren.

Hoewel er hierboven nogal wat methoden zijn, moet u ook weten dat het altijd beter is om dergelijke problemen te voorkomen. U moet uw systeem up-to-date houden, alleen vertrouwde PPA's gebruiken en een back-up maken wanneer alles naar behoren werkt, zodat u het later kunt herstellen. Als u deze dingen echter bent vergeten, gebruikt u de bovenstaande methoden om uw probleem op te lossen en de preventiemethoden om ervoor te zorgen dat u dit niet doet.

5 minuten gelezen