Lær afhængighedsstyring ved hjælp af ldd-kommandoen for bedre at administrere din Linux-maskine og installerede pakker.

Håndtering af afhængigheder er en integreret del af vedligeholdelsen af ​​dit Linux-system. Software er kompleks og er afhængig af et væld af delte biblioteker og filer. Nogle gange bliver det svært at holde styr på de filer, der kræves af et program.

Det er her ldd-kommandoen på Linux kommer i spil. ldd er et ressourcestærkt kommandolinjeværktøj til at holde styr på de delte objektafhængigheder, der kræves af en applikation.

Lad os lære, hvordan du kan bruge ldd-kommandoen til din fordel og blive en professionel til at administrere afhængigheder på Linux!

Hvad er pakkeafhængigheder?

Software er ikke kun selvstændig kildekode, men snarere en sammenlægning af indbygget kildekode og lånt kode fra eksterne biblioteker. Når disse biblioteker og andre delte objekter mangler på dit system, kan en applikation, afhængig af dem, fejle eller ligefrem nægte at starte.

Alle disse delte filer, pakker, biblioteker osv. kaldes kumulativt afhængigheder på Linux. Selvom denne korte definition giver dig en grov idé om afhængigheder, er det virkelige billede en smule mere komplekst end som så, og det er derfor, det er vigtigt at lære

instagram viewer
hvad pakkeafhængigheder er i dybden.

Hvad er ldd-kommandoen, og hvordan fungerer den?

ldd er en forkortelse for List Dynamic Dependencies. Som navnet antyder, viser ldd alle de delte objekter, der kræves af en applikation.

Det virker ved at påkalde den dynamiske linker med specielt indstillet miljøvariabler. Når du kører ldd med placeringen af ​​en binær, returnerer den et output, der indeholder listen over afhængigheder, deres placering og en hexadecimal værdi, der repræsenterer, hvor i hukommelsen de er indlæst.

Find delte objektafhængigheder med ldd-kommando

Nu hvor du har en klar idé om, hvad ldd handler om, lad os komme i gang og lære, hvordan du kan finde softwareafhængigheder med det.

Før du lærer at bruge ldd, skal du først bekræfte, om du har det installeret på dit system ved at udskrive den installerede version af ldd:

ldd --version

Hvis den vender tilbage fejlen "kommando ikke fundet"., skal du først installere ldd.

På Ubuntu- og Debian-baserede systemer skal du køre:

sudo apt installer libc-bin

For Arch-baserede distributioner:

sudo pacman -S glibc

Om RHEL og Fedora:

sudo dnf installer glibc-common

Med ldd installeret kan du nu fokusere på at lære at bruge det. Her er den grundlæggende syntaks for ldd-kommandoen:

ldd binær_placering

I tilfælde af at du ikke kender placeringen af ​​binæren, kan du gøre brug af en af ​​de mange Linux-kommandolinjeoperatører og kombiner outputtet fra hvilken kommando med ldd for at finde afhængighederne for pakken:

ldd -flag $(hvilket binært_navn)

ldd-kommandoen tilbyder fire forskellige muligheder for at ændre outputtet. De er:

  • -v: Udskriver detaljeret output inklusive yderligere information såsom versionsoplysninger for hver afhængighed
  • -u: Udskriver alle ubrugte afhængigheder, hvilket betyder afhængigheder, der er indlæst, men ikke implementeret
  • -d: Udskriver manglende objekter og udfører flytninger
  • -r: Udskriver manglende objekter og funktioner og udfører flytninger

Håndtering af pakkeafhængigheder på Linux

Med ldd i dit softwarearsenal vil du være i stand til at fejlfinde delte objektafhængighedsrelaterede problemer med din applikation.

Da ldd også udlæser det sted, hvor et bibliotek er indlæst, vil du være i stand til at fejlsøge en applikation og bedre forstå, hvordan et bestemt bibliotek er implementeret. ldd udskriver også versionerne af delte biblioteker, der bruges i en applikation.

Ved at bruge denne funktion kan du revidere dine applikationer for potentielle sårbarheder forbundet med en forældet version af et delt bibliotek.

Afhængighedsstyring er en kernefærdighed, der er afgørende for at holde dit Linux-system sundt. Nogle gange kan en pakke dog gå i stykker, selvom alle dens afhængigheder er sunde. Det er vigtigt, at du ved, hvordan du finder og reparerer ødelagte pakker.