Sådan løses afhængighedsfejl i Ubuntu og derivater?

A af de mest almindelige problemer, der normalt opstår i Ubuntu eller et hvilket som helst af dets derivater når brugeren installerer deb-pakker, som han downloader fra et websted, Det er det berømte problem med uopfyldte afhængigheder, dette genereres, fordi pakken kræver en specifik version af en applikation, eller den frigives, og den ikke er i systemet, eller at pakkehåndtereren ikke kan finde de korrekte afhængige pakker, der er nødvendige for at udføre programmet i Ubuntu.

Selvom denne slags problemer opstår mindre og mindre, På grund af det faktum, at mange brugere allerede har en tendens til at foretrække brugen af ​​Flatpak-, AppImage- eller Snap-applikationer, ud over det faktum at de allerede har et anstændigt katalog med de mest populære apps, og flere udviklere fortsætter med at tilføje deres apps i denne type format.

Identificering af problemet

Det første skridt til at løse denne irriterende fejl er at identificere problemet siden generelt springer dette normalt, når vi prøver at installere en pakke eller applikation fra en deb-pakke eller endda et lager.

Denne fejl er angivet for os fra terminalen, der fortæller os, at visse afhængigheder ikke kan opfyldes eller i tilfælde af installation via Ubuntu softwarecenter installerer det simpelthen ikke applikationen.

Her er det vigtigt at kontrollere, om vi ikke prøver at installere en forældet pakke Nå, muligvis er der en mere aktuel pakke, eller tjek lageret fra hvilken dato pakkens dato og indtil hvilken version der er tilgængelig.

Hvis den modstridende pakke allerede er installeret, når du prøver at køre kommandoen:

sudo apt update

o

sudo apt upgrade

Dette vil informere os om konflikten og bede os om at udføre en kommando til at løse problemet.

Anvendelse af den første løsning

Den mest direkte måde at rette fejl på Afhængighed i Ubuntu er med standardpakkehåndtering, for at starte korrektionen skal du bare åbne en terminal og køre kommandoen:

sudo apt install -f

Når du udfører ovenstående kommando, Ubuntu-pakkehåndtering vil forsøge at løse problemerne afhængighed overfor og det vil udskrive de ændringer, du vil foretage. 

Her det er vigtigt at være opmærksom på de ændringer, du udskriver da hvis det ikke løser sig i konflikt med afhængighederne, fortsætter det med at afinstallere den eller de modstridende pakker og fortæller os, hvilke afhængigheder der er konflikter med pakken.

På samme måde kan du vælge denne anden løsning:

Download deb-pakker lokalt
relateret artikel:
Hvordan downloades DEB-pakker med afhængigheder lokalt?

Anden løsning, installation af nødvendige afhængigheder

Under hensyntagen til det forrige trin, hvor vi nedskriver de pakker eller biblioteker, der er nødvendige for at løse afhængighedsfejlene, her vi skal installere pakkerne en efter en fra terminalen, eller vi kan hjælpe os selv med Synaptic

E.g., i terminalen får vi vist noget som dette:

"Error: Dependency is not satisfiable: libgtk-3-0 (>=3.16.2)"

Vi skal bemærke det Det fortæller os, at udgivelsen "libgtk 3.0" er større end eller lig med version "3.16.2" for hvad vi skylders download i dette tilfælde versionen af ​​biblioteket. Her er det vigtigt at tage højde for, at for biblioteker er mange applikationer afhængige af en eller en bestemt version, så jeg personligt råder dig ikke til at lægge din hånd her.

For at finde en bestemt version kan vi stole på siden med ubuntu-pakker (Packages.ubuntu.com) for at kontrollere, hvilken version af Ubuntu det er, og i hvilket lager, da det er meget almindeligt ikke at have nogle aktiveret.

Her kan du downloade og installere de tilsvarende pakker, du har brug for.

Som en anbefaling er det bedre at give op, når du installerer en bestemt version af et bibliotek, der er den, der anmodes om, angiver, at flere pakker afhænger af det, da du kan ødelægge dit grafiske miljø eller ende med at ødelægge dit system. 

Tredje og sidste mulighed. Udpakning skal ændre afhængigheder og ompakning.

Denne sidste mulighed er i teorien den bedste løsning, da udviklere generelt angiver, at applikationen fungerer under en bestemt version af en frigivelse, men de tager ikke højde for, at biblioteket kan opdateres i løbet af få dage eller i det øjeblik, hvor de frigiver deres applikation.

Så hvis de begrænser applikationen til at arbejde under en bestemt version, Dette er den, der forårsager konflikt.

vi skal gøre er at pakke deb-pakken ud, og vi vil ændre afhængighederne til den version, som vi har i systemet (det var derfor, det var vigtigt at bemærke, hvilke afhængigheder der var i konflikt og den specifikke version).

Til dette skal vi skrive kommandoen:

dpkg-deb -R “ruta-de-paquete-deb” “nombre-de-carpeta-que-tendra-los -archivos”

For eksempel:

dpkg-deb -R gimp.deb Gimp

Vi får adgang til mappen og vi går til den følgende rute "/ DEBIAN"

cd Gimp/DEBIAN

Og vi skal redigere filen "kontrol" med vores yndlingsredaktør

sudo gedit control

her vi skal kigge efter de linjer, der angiver afhængighederne som vi har konflikter med, og vi vil redigere dem.

For eksempel finder vi noget som dette:

Package: XXXX

Version: XXXX

Depends: libgtk3-0 (>= 3.16.xx"

Vi skifter til den version, vi har på. Vi gemmer ændringerne og ompakker for at geninstallere med:

dpkg-deb -b Gimp Gimp-new.deb

Og den nye deb-pakke genereres til installation.


Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort. Obligatoriske felter er markeret med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.

  1.   Daniel sagde han

    Meget interessant om deb-pakken. Jeg kendte ham ikke. Vær hilset.

  2.   Ferdinand Baptist sagde han

    Hvilket problem med ødelagte afhængigheder, af den grund fejrer jeg implementeringen af ​​pakker som Snap og Flatpak (jeg vælger den første) for at se, om vi endelig begynder at standardisere og vinde terræn på skrivebordet.

  3.   mario anaya sagde han

    Jeg lider af det i disse dage, og jeg har prøvet at følge disse procedurer, men har ikke opnået meget.
    Langt fra at sige, at det, der læses, er forkert.
    Det skyldes mere uvidenheden hos den, der skriver om brugen af ​​linux, jeg har brugt det i relativt kort tid, og jeg har kun en formatering og geninstallation af systemet til alle svar.
    Det er som at prøve at læse kinesisk. det er næsten skattepligtigt for mig

    1.    David naranjo sagde han

      At have problemer med afhængigheder kan have mange faktorer, og i høj grad sker det som diskuteret i artiklen, når vi forsøger at installere en pakke, der kan være forældet eller på anden måde er kompatibel med en anden version af Ubuntu eller er specielt bygget til en. Særlig distribution (normalt for Debian).

      En anden sag kan være, når du anvender instruktionen –force og anvender en senere apt-opdatering eller opgraderer og ændrer nogle biblioteker.
      På den anden side også når pakkerne er i konflikt med skrivebordsmiljøerne, hvor du installerede to eller flere miljøer, hvor deres afhængighed normalt er den samme, og du afinstallerede nogen af ​​dem uden at give instruktion om at beholde afhængighederne.
      Sagerne er mange, men hvis du gerne vil dele dit problem, kan vi muligvis nå en løsning.
      Greetings.

  4.   Alejandro Mendoza sagde han

    Hej, jeg har problemer med ødelagte pakker, den første mulighed løser ikke noget, den anden mulighed, når man ser i søgningen efter pakker, vises hverken pakkerne eller bibliotekerne for at installere dem manuelt, og da jeg bruger programmet til at opdatere i Ubuntu 18.04, aner jeg ikke, hvor .deb til opdateringer falder fra, hvis jeg ser at gøre sag 3, nogen løsning? tak tak !!!

  5.   oscar antonio garcia sagde han

    Jeg har et problem med zorin, installerer nogle codecs, jeg får en fejl, i terminalen får jeg fejlstrengen:
    /var/lib/dpkg/lock-frontend

    Hvordan kan jeg løse det, da jeg er ny i dette