Hoe gebruik je LDD commando in Linux
benieuwd hoe gebruik je het LDD commando in Linux?
Linux biedt voldoende flexibiliteit omdat het je in staat stelt om je systeem af te stemmen op je behoeften. Dat betekent dat u uw systeem eenvoudig via de Terminal kunt bedienen. Bovendien kunt u verschillende parameters controleren en een controle houden op de bestanden die worden gedeeld en gebruikt door verschillende programma ‘ s op uw systeem.
een commando, in het bijzonder, stelt u in staat om de bibliotheken te herkennen die door een bepaald programma worden gebruikt. Dit is het LDD Commando ontwikkeld door Roland McGrath en Ulrich Drepper.
LDD (List Dynamic Dependencies) maakt het voor de gebruiker mogelijk om de bibliotheekafhankelijkheden te identificeren die over verschillende uitvoerbare bestanden worden gedeeld.
deze gids zal je helpen leren hoe je het LDD commando in Linux kunt gebruiken.
dus zonder verder oponthoud, laten we beginnen!
typen bibliotheken.
een bibliotheek is een goed gedefinieerde verzameling van functies, objecten, variabelen, klassen, typespecificaties, Voorwaarden en subroutines die de bewerkingen van bestanden en programma ‘ s bepalen, zonder dat de broncode hoeft te worden onderhouden.
er zijn drie soorten bibliotheken:
- dynamische bibliotheken: dit zijn bibliotheken die worden gebruikt door programma ‘ s die op kleinere schaal worden gecompileerd. Zoals de naam al aangeeft, wordt het dynamisch geladen op het moment van uitvoering, dus een enkele kopie wordt dynamisch gebruikt om meerdere programma ‘ s uit te voeren.
dit vermindert het geheugenverbruik, waardoor de programmaformaat wordt geminimaliseerd en de prestaties worden verbeterd. Ze hebben meestal” .so
” extensies.
- statische bibliotheken: deze bibliotheken worden gebruikt door complete programma ‘ s. Ze koppelen programma ‘ s zonder de broncode opnieuw te compileren, waardoor tijd wordt bespaard. Deze bibliotheken zijn afzonderlijk opgenomen in de programmabestanden die de functies nodig hebben. Ze worden meestal gevolgd door een”
.a
” extensie. - gedeelde bibliotheken: dit zijn individueel geïnstalleerde bibliotheken die automatisch worden gebruikt door programma ‘ s na aflevering. Zij kunnen specifieke delen van een reeds bestaande bibliotheek overschrijven wanneer het programma bepaalde taken uitvoert. Plus, ze kunnen worden gebruikt tijdens runtime met onze code of een programma.
de meeste uitvoerbare bestanden die we dagelijks gebruiken, bevatten gedeelde bibliotheken. LDD-opdracht geeft de dynamische bibliotheekafhankelijkheden weer. Deze bibliotheken worden hergebruikt en gedeeld tussen programma ‘s om de ontwikkeling van programma’ s te vergemakkelijken en hun grootte en belasting op het geheugen van de computer te verminderen.
in Linux hebben deze bestanden de vorm van een” .so
” extensie en zijn ze opgeslagen in /usr/lib*
of gewoon /lib*
.
verschillende distributies van Linux-systemen kunnen een andere set bibliotheken voor een programma bevatten, waardoor het anders werkt op verschillende versies van het besturingssysteem. Wanneer een gedeelde bibliotheek voor een programma niet beschikbaar is op uw systeem, krijgt u een fout die er zo uit kan zien:
Sudo: error while loading shared libraries: libpthread.so.0:Cannot open shared object file: no such file or directory.
we kunnen dan de gedeelde bibliotheken voor een bepaald programma controleren met behulp van het LDD Commando.
het LDD-Commando installeren.
het LDD commando is inherent beschikbaar in bijna elke Linux distributie. In het geval dat het niet, kunt u de volgende opdracht gebruiken om het te installeren:
$ sudo apt-get install libc-bin
het commando $ ldd
heeft de volgende syntaxis:
$ ldd <options> <executable>
of meer in het algemeen:
$ ldd -v /path/to/program/executable
LDD is een eenvoudig, maar krachtig Commando. Het biedt hulp en andere variaties met behulp van verschillende vlaggen. Zij worden hieronder kort beschreven.
– version
: om de huidige LDD-versie weer te geven.
-v --verbose
: om informatie ingewikkeld weer te geven.
-u --unused
: ongebruikte afhankelijkheden weergeven.
-d --data-relocs
: om ontbrekende objecten te verplaatsen en te identificeren.
-r --function-relocs
: gegevensobjecten en-functies verplaatsen en ontbrekende functies of objecten identificeren.
–-help
: om hulp te bieden met betrekking tot het gebruik van commando ‘ s.
met behulp van het LDD-Commando.
nu je de installatie hebt voltooid, ben je klaar om te leren hoe je het LDD commando in Linux moet gebruiken. We zullen dit laten zien, samen met hoe het helpt bij het identificeren van gedeelde bibliotheken.
We zullen de gedeelde bibliotheken bekijken voor Bash, de standaard shell op Linux. Het is verantwoordelijk voor het uitvoeren van opdrachten en het verstrekken van een interface tussen de gebruiker en het besturingssysteem.
volg deze stappen om het LDD commando te gebruiken:
- begin met het openen van de Opdrachtterminal door op Ctrl + Alt + T op uw toetsenbord te drukken.
- volgende, Zoek het pad met de opdracht
which
ofwhereis
gevolgd door de opdracht LDD door het volgende te typen:
$ which bash$ whereis bash$ ldd /usr/bin/bash
zoals u kunt zien, zijn de gedeelde bibliotheekafhankelijkheden zichtbaar. Voor een gedetailleerd en complexer overzicht, gebruik je de -v
vlag met het $ ldd
commando als volgt:
$ ldd -v /usr/bin/bash
op dezelfde manier kunnen we de -u
vlag gebruiken om de ongebruikte afhankelijkheden weer te geven.
$ ldd -u /usr/bin/bash
in het bovenstaande geval zijn er geen ongebruikte afhankelijkheden. Het wordt altijd aangeraden om in de gaten te houden welke bibliotheken inactief zijn en het geheugen verbruiken. Als u dit niet doet, kan uw kernel worden geladen met ongebruikte bestanden, waardoor de prestaties worden belemmerd. Het zou handig zijn om ons artikel te bekijken over het vrijmaken van ruimte op Ubuntu.
voor de data-en functieverplaatsingen gebruiken we respectievelijk de vlaggen -d
en -r
naast het commando $ ldd
.
$ ldd -d /usr/bin/bash$ ldd -r /usr/bin/bash
deze vlaggen helpen ook bij het identificeren van ontbrekende objecten en functies.
Last but not least, kunnen we de --help
vlag gebruiken voor een snelle raadpleging over de vlaggen en hun respectievelijke acties.
beperkingen van het LDD Commando.
opgemerkt moet worden dat het LDD commando niet werkt op Programma ‘ s die niet dynamisch uitvoerbaar zijn, “a.out
” gedeelde bibliotheken of bestanden die verouderd zijn of ontwikkeld werden voordat de LDD uitkwam.
ten slotte wordt geadviseerd dat LDD-opdrachten niet gebruikt mogen worden met niet-vertrouwde bronnen, omdat dit kan leiden tot abrupte fouten en uitzonderingen.
de manual page voor LDD suggereert een alternatief commando dat bestaat uit objdump
en grep
utilities.
~/$objdump -p /path/program/grep NEEDED
LDD is een van die ondermijnde instructies die, als ze op de juiste manier worden gebruikt, een wezenlijk verschil kunnen maken in uw interactie met het besturingssysteem. Het is een krachtig linking commando met een specifiek doel,en het levert zeker. Voor meer details over het commando en het gebruik ervan, kun je naar de man page gaan voor het LDD Commando.
Leave a Reply