Leer afhankelijkheidsbeheer met behulp van de opdracht ldd om uw Linux-machine en geïnstalleerde pakketten beter te beheren.
Het beheren van afhankelijkheden is een integraal onderdeel van het onderhouden van uw Linux-systeem. Software is complex en is afhankelijk van een groot aantal gedeelde bibliotheken en bestanden. Soms wordt het moeilijk om de bestanden bij te houden die nodig zijn voor een toepassing.
Dit is waar het ldd-commando op Linux in het spel komt. ldd is een vindingrijk opdrachtregelprogramma om de gedeelde objectafhankelijkheden bij te houden die een toepassing nodig heeft.
Laten we leren hoe u de opdracht ldd in uw voordeel kunt gebruiken en een professional kunt worden in het beheren van afhankelijkheden op Linux!
Wat zijn pakketafhankelijkheden?
Software is niet alleen op zichzelf staande broncode, maar eerder een samensmelting van native broncode en geleende code van externe bibliotheken. Wanneer deze bibliotheken en andere gedeelde objecten op uw systeem ontbreken, kan een toepassing die hiervan afhankelijk is, defect raken of zelfs weigeren om zelfs maar te starten.
Al deze gedeelde bestanden, pakketten, bibliotheken, enz. worden cumulatief afhankelijkheden van Linux genoemd. Hoewel deze korte definitie je een globaal idee geeft van afhankelijkheden, is het echte plaatje iets complexer dan dat, en daarom is het belangrijk om te leren wat pakketafhankelijkheden zijn diepgaand.
Wat is het ldd-commando en hoe werkt het?
ldd is een afkorting voor List Dynamic Dependencies. Zoals de naam al doet vermoeden, somt ldd alle gedeelde objecten op die een toepassing nodig heeft.
Het werkt door de dynamische linker aan te roepen met een speciaal ingestelde omgevingsvariabelen. Wanneer u ldd uitvoert met de locatie van een binair bestand, retourneert het een uitvoer met de lijst met afhankelijkheden, hun locatie en een hexadecimale waarde die aangeeft waar in het geheugen ze zijn geladen.
Afhankelijkheden van gedeelde objecten zoeken met de opdracht ldd
Nu je een duidelijk idee hebt van waar ldd om draait, laten we aan de slag gaan en leren hoe je er softwareafhankelijkheden mee kunt vinden.
Voordat u ldd leert gebruiken, moet u eerst bevestigen of u het op uw systeem hebt geïnstalleerd door de geïnstalleerde versie van ldd af te drukken:
ldd --versie
Als het terugkeert een "opdracht niet gevonden" fout, moet u eerst ldd installeren.
Voer op Ubuntu- en Debian-gebaseerde systemen het volgende uit:
sudo apt installeer libc-bin
Voor op Arch gebaseerde distributies:
sudo pacman -S glibc
Op RHEL en Fedora:
sudo dnf installeer glibc-common
Nu ldd is geïnstalleerd, kunt u zich concentreren op het leren gebruiken ervan. Dit is de basissyntaxis voor de opdracht ldd:
ldd binaire_locatie
Als u de locatie van het binaire bestand niet weet, kunt u gebruik maken van een van de veel Linux-opdrachtregeloperatoren en combineer de uitvoer van de opdracht which met ldd om de afhankelijkheden voor het pakket te vinden:
ldd -flag $(welke binaire_naam)
De opdracht ldd biedt vier verschillende opties om de uitvoer te wijzigen. Zij zijn:
- -v: Drukt uitgebreide uitvoer af, inclusief aanvullende informatie zoals versie-informatie voor elke afhankelijkheid
- -u: Drukt alle ongebruikte afhankelijkheden af, d.w.z. afhankelijkheden die zijn geladen maar niet geïmplementeerd
- -D: Print vermiste voorwerpen en voert verhuizingen uit
- -R: Print ontbrekende objecten en functies en voert verhuizingen uit
Pakketafhankelijkheden op Linux beheren
Met ldd in uw software-arsenaal kunt u problemen met gedeelde objectafhankelijkheid met uw toepassing oplossen.
Bovendien, aangezien ldd ook de locatie uitvoert waar een bibliotheek is geladen, kun je een toepassing debuggen en beter begrijpen hoe een bepaalde bibliotheek is geïmplementeerd. ldd drukt ook de versies af van gedeelde bibliotheken die in een toepassing worden gebruikt.
Met deze functie kunt u uw toepassingen controleren op mogelijke kwetsbaarheden die verband houden met een verouderde versie van een gedeelde bibliotheek.
Afhankelijkheidsbeheer is een kernvaardigheid die cruciaal is om uw Linux-systeem gezond te houden. Soms kan een pakket echter kapot gaan ondanks dat alle afhankelijkheden in orde zijn. Het is belangrijk dat u weet hoe u kapotte pakketten kunt vinden en repareren.