Hvis du ser ord som “uavhengige avhengigheter”, “ødelagte pakker”, “pakker har blitt holdt tilbake” i terminalutgangen, er sjansen stor for at du kan ha avhengighetskonflikter. Denne artikkelen vil liste opp noen få metoder som kan brukes til å forhindre og fikse denne typen avhengighetsfeil. Merk at metodene som er foreslått nedenfor ikke er i noen rekkefølge.
Oppdater pakker
Det aller første du må gjøre i tilfelle feil er å kjøre oppdateringskommandoen. Det vil oppdatere eventuelle offisielle arkiver og tredjepartsregister du har lagt til systemet ditt og trekke en ny liste over pakker. Å kjøre oppdateringskommandoen fra terminalen omgår trinnvis utrulling av offisielle Ubuntu-pakker gjennom GUI-oppdatereren, slik at du alltid får den siste listen over pakker.
Du kan oppdatere lagringssteder ved å kjøre følgende kommando:
$ sudo apt oppdateringEndre pakkenedlastingsserver
Hvis du får feilmeldinger når du kjører oppdateringskommandoen ovenfor, kan du prøve å endre nedlastingsspeil. Ubuntu-pakker serveres til sluttbrukere fra servere lokalisert over hele verden. Noen ganger er bare delvise eller ødelagte pakkeoppdateringer tilgjengelig fra disse serverne, noe som resulterer i feil under oppdateringen. Dette problemet løses vanligvis automatisk etter en stund når alle Ubuntu-pakker er korrekt klonet i disse speilene. Du kan imidlertid endre speilplasseringen manuelt for å løse dette problemet.
For å endre nedlastingsserveren, start "Programvare og oppdateringer" -appen fra appstarteren. I kategorien "Ubuntu-programvare" er det nesten garantert å velge "Hovedserver" i rullegardinlisten "Last ned fra" for å løse eventuelle problemer med tilgjengelighetspakker. Nedlastingshastigheten kan imidlertid være lav, avhengig av hvor du er og nærheten til serverne. Ubuntu velger som standard en server som gir deg maksimal hastighet basert på din nåværende posisjon. Du kan overstyre den ved å velge en hvilken som helst oppført server eller ved å klikke på “Velg beste server” for å la valget være på Ubuntu.
Oppgrader pakker
Oppgradering av installerte pakker kan fikse avhengighetsfeil. Det er to kommandoer tilgjengelig for å oppgradere Ubuntu-pakker, begge har ulik oppførsel:
- “Oppgradering”: oppgraderer installerte pakker hvis noen oppdateringer er tilgjengelige, fjerner ikke pakken selv om det er uoppfylte og ødelagte avhengigheter
- “Dist-upgrade”: gjør forsøk på smart oppgradering av pakker og løse avhengigheter, fjerner ødelagte og installerer nye avhengigheter der det er nødvendig for å fikse feil
Kommandoene for henholdsvis oppgradering og dist-oppgradering er:
$ sudo apt oppdatering$ sudo apt dist-upgrade
Rydd opp i hurtigbufrede og gjenværende pakker
Ubuntus pakkebehandling “apt” holder nedlastede pakker i en cache-mappe. Neste gang du trenger å installere en pakke som allerede er hurtigbufret, vil Ubuntu få deb-pakken fra hurtigbuffermappen i stedet for å laste den ned fra serveren på nytt. Å tømme denne hurtigbufferen rydder opp diskplass og hjelper også til å fikse avhengighets- og installasjonsfeil i noen tilfeller.
Apts pakkebuffer kan tømmes ved å kjøre kommandoen nedenfor:
$ sudo apt renDet er en annen passende kommando "autoclean" som tømmer pakkebufferen. Men i stedet for å tømme hele mappen, fjerner den bare pakker som er fjernet fra depotservere.
$ sudo apt autocleanGjør en Mock-installasjon
Det er mulig å simulere installasjonen av en pakke for å kontrollere eventuelle feil som oppstår under reell installasjon. Kjør kommandoen nedenfor mens du erstatter "pakke navn" med ønsket pakke navn (uten anførselstegn) for å gjøre en mock installasjon.
$ sudo apt install - tørk kjør "pakke navn"En fjerning kan gjøres på samme måte:
$ sudo apt remove - tørk kjør "pakke navn"Løs ødelagte pakker
Det er mulig å ha ødelagte pakker og uavhengige avhengigheter, spesielt når du installerer flere pakker samtidig. Kommandoen nedenfor vil gjøre et forsøk på å løse disse problemene enten ved å installere og reparere ødelagte avhengigheter eller ved å fjerne en pakke helt som er ansvarlig for avhengighetskonflikt.
$ sudo apt -f installereKonfigurer pakker som ikke kunne installeres på grunn av forstyrrelser
Noen ganger stopper den apt pakkelederen brått og etterlater pakker som ikke klarte å sette opp. Disse forstyrrelsene er vanligvis på grunn av faktorer som er ute av kontroll av apt pakkebehandler. For eksempel, hvis du ved et uhell lukket terminalen eller PCen slår seg av plutselig, vil apt ikke kunne fullføre oppsettet. Å kjøre kommandoen nedenfor vil fikse pakkefeil og avhengighetsproblemer som oppstår på grunn av dette problemet.
$ sudo dpkg --konfigurer -aBruk PPA-Purge
Et "Personal Package Archive" eller en PPA er et programvarelager som lar Ubuntu-brukere oppgradere eller installere nye pakker fra uoffisielle kilder. PPA-Purge er et verktøy som fjerner disse tredjeparts PPA-kildene og nedgraderer pakker installert fra PPA til lagerversjoner. Bruk av PPA-Purge vil løse eventuelle avhengighetskonflikter som oppstår fra pakker installert eller oppgradert fra PPA. For å installere PPA-Purge kommandolinjeapp i Ubuntu, kjør følgende kommando:
$ sudo apt installere ppa-purgeFor å rense en PPA, kjør kommandoen i følgende format:
$ sudo ppa-purge "ppa: adresse"For eksempel, Geany teksteditor PPA lagt til fra her kan renses ved å kjøre kommando:
$ sudo ppa-purge ppa: geany-dev / ppaBruk Aptitude Package Manager
Aptitude-pakkebehandling kan brukes i stedet for standard apt-pakkebehandling i Ubuntu for å løse avhengighetsfeil. Aptitude er nyere enn apt pakkehåndtering, og det gir ekstra alternativer, en terminalbasert frontend og generell brukervennlighet. Aptitude kombinerer mange apt-alternativer i en enkelt kommando, slik at du ikke trenger å kjøre flere kommandoer for å fikse feil.
Hvis du for eksempel bruker aptitude package manager for å fjerne til og med en enkelt pakke, får du muligheten til å fjerne ubrukte og gjenværende pakker, mens det er en egen kommando i apt for å gjøre det samme. Aptitude er mye smartere i avhengighetskonfliktløsning enn apt, det gir vanligvis detaljert tilbakemelding for å løse konflikter, med flere alternativer som kan velges av brukeren. Jeg sørger alltid for at egnethet og PPA-Purge er installert på systemet mitt før jeg får noen svært eksperimentelle pakker.
Aptitude kan installeres ved å kjøre kommandoen nedenfor:
$ sudo apt installer aptitudeAptitude og apt deler mange kommandolinjealternativer med aptitude som har noen forskjeller. Du kan utforske alle egnethetsalternativer fra her.
Installer Ubuntu Desktop Package på nytt
Hvis du installerer "ubuntu-desktop" -pakken på nytt, trekkes viktige pakker som ble installert som standard i Ubuntu. Det vil få alle pakker som avhenger av ubuntu-desktop metapakke. For å installere ubuntu-desktop på nytt, kjør kommandoen nedenfor:
$ sudo apt install - installer ubuntu-desktopMerk at kommandoen ovenfor bare vil installere viktige kjernepakker og ikke apper som Firefox, Thunderbird, videospiller osv.
Fjern eller deaktiver PPA-er før du oppgraderer til en nyere versjon av Ubuntu
Selv om Ubuntu deaktiverer PPA-er før du gjør en systemoppgradering, for å forhindre uavhengige avhengighetsfeil under og etter en systemoppgradering, bør du fjerne alle tredjeparts-PPA-er manuelt. Den beste måten å gjøre dette på er å kjøre PPA-Purge-kommandoen forklart ovenfor.
Du kan også fjerne bare PPA-arkiver. Dette kan imidlertid ikke forhindre avhengighetsfeil under oppgraderingen. PPA-er kan fjernes på to måter, den første innebærer bruk av kommandolinje og den andre krever bruk av en GUI-app. Merk at disse metodene bare fjerner PPA-arkiver, og etterlater eventuelle tidligere oppgraderte eller installerte pakker i systemet.
For å fjerne en PPA ved hjelp av kommandolinjen, kjør kommandoen nedenfor i følgende format:
$ sudo add-apt-repository - fjern “ppa: name”For eksempel, Geany teksteditor PPA lagt til fra her kan fjernes ved å kjøre kommandoen:
$ sudo add-apt-repository - fjern ppa: geany-dev / ppaFor å fjerne en PPA ved hjelp av GUI-metoden, må du vanligvis starte "Programvare og oppdateringer" -appen fra appstarteren. På grunn av en feil i Ubuntu fungerer denne metoden ikke alltid, og den deaktiverer ikke PPAer.
For å komme rundt dette, må vi installere Synaptic pakkebehandling som er en frontend for apt. For å installere Synaptic, kjør kommando:
$ sudo apt install synapticStart "Synaptic Package Manager" fra appstarter. Klikk på "Innstillinger"> "Repositories". Gå til "Annen programvare" -fanen og klikk på en PPA som du vil fjerne for å markere den. Klikk på "Fjern" -knappen nederst for å fjerne PPA fra systemet. Du kan også deaktivere en PPA uten å fjerne den, slik at den kan aktiveres på nytt etter systemoppgradering. For å gjøre det, fjerner du bare avkrysningsruten foran en PPA. Når du har fulgt trinnene ovenfor, lukker du “Programvare og oppdateringer” -vinduet. Når du blir bedt om å oppdatere arkivene, klikker du på “Last inn på nytt” -knappen.
Vær forsiktig når du legger til nye PPAer i systemet
Ofte oppstår avhengighetsfeil når du bruker tredjeparts PPAer eller installerer deb-pakker fra uoffisielle kilder. Det er også en sjanse for at skadelig programvare kommer inn i systemet ditt via en PPA. Derfor bør du alltid være forsiktig når du legger til tilfeldig PPA i systemet ditt. Bare legg til en PPA hvis du stoler på kilden og vedlikeholdere / utviklere. Selv om vi ikke har hørt om skadelig programvare eller adware distribuert gjennom PPAer så langt, er det alltid en risiko ettersom dette er tredjepartsregister som har pakker som ikke er verifisert av Ubuntu-utviklere.
Konklusjon
Dette er noen metoder som kan brukes til å fikse og forhindre avhengighetsfeil i Ubuntu. Ting har en tendens til å gå i stykker, spesielt når du bruker Ubuntu som ditt viktigste utviklingsmiljø med mange tredjepartsapper og kommandolinjeverktøy. Imidlertid kan de fleste av disse avhengighetsfeilene minimeres ved å installere apper fra offisielle, anerkjente og pålitelige kilder.