hur man använder LDD-kommandot i Linux

undrar hur man använder LDD-kommandot i Linux?

Linux erbjuder stor flexibilitet eftersom det låter dig ställa in ditt system efter dina behov. Det betyder att du enkelt kan använda ditt system via terminalen. Dessutom kan du styra olika parametrar och hålla koll på de filer som delas och används av olika program på ditt system.

ett kommando, i synnerhet, gör att du kan känna igen de bibliotek som används av ett visst program under inspektion. Detta är LDD-kommandot utvecklat av Roland McGrath och Ulrich Drepper.

LDD (List Dynamic Dependencies) underlättar för användaren att identifiera biblioteksberoenden som delas mellan olika körbara filer.

den här guiden hjälper dig att lära dig hur du använder LDD-kommandot i Linux.

så utan vidare, Låt oss börja!

typer av bibliotek.

ett bibliotek är en väldefinierad uppsättning funktioner, Objekt, variabler, klasser, typspecifikationer, villkor och subrutiner som dikterar driften av filer och program, utan att behöva behålla källkoden.

det finns tre typer av bibliotek:

  1. dynamiska bibliotek: dessa är bibliotek som används av program som sammanställs i mindre skala. Som namnet antyder laddas det dynamiskt vid körningstillfället, så en enda kopia används dynamiskt för att köra flera program.

detta minskar minnesförbrukningen, vilket minimerar programstorleken och förbättrar prestanda. De har vanligtvis “.so” – tillägg.

  1. statiska bibliotek: dessa bibliotek används av kompletta program. De länkar program utan att kompilera om källkoden, vilket sparar tid. Dessa bibliotek ingår separat i programfilerna som kräver dess funktioner. De följs vanligtvis av en “.a” – förlängning.
  2. delade bibliotek: dessa är individuellt installerade bibliotek som automatiskt används av program vid avbetalning. De kan åsidosätta specifika delar av ett befintligt bibliotek när programmet utför vissa uppgifter. Dessutom kan de användas vid körning med vår kod eller ett program.

de flesta körbara filer vi använder dagligen innehåller delade bibliotek. LDD-kommandot listar de dynamiska biblioteksberoende. Dessa bibliotek återanvänds och delas över program för att underlätta utvecklingen av program och minska storleken och belastningen på datorns minne.

i Linux är dessa filer i form av ett” .so ” – tillägg och de lagras i /usr/lib* eller helt enkelt /lib*.

olika distributioner av Linux-system kan paketera en annan uppsättning bibliotek för ett program, vilket gör att det fungerar annorlunda på olika versioner av operativsystemet. När ett delat bibliotek för ett program inte är tillgängligt på ditt system får du ett fel som kan se ut så här:

Sudo: error while loading shared libraries: libpthread.so.0:Cannot open shared object file: no such file or directory.

vi kan sedan kontrollera de delade biblioteken för ett visst program med kommandot LDD.

installera kommandot LDD.

LDD-kommandot är i sig tillgängligt i nästan alla Linux-distributioner. Om det inte är det kan du använda följande kommando för att installera det:

$ sudo apt-get install libc-bin

kommandot $ ldd har följande syntax:

$ ldd <options> <executable>

eller mer allmänt:

$ ldd -v /path/to/program/executable

LDD är ett grundläggande men ändå kraftfullt kommando. Det erbjuder hjälp och andra variationer med olika flaggor. De beskrivs kortfattat nedan.

ion: för att visa den LDD-version som för närvarande används.

-v --verbose: för att visa information intrikat.

-u --unused: för att visa oanvända beroenden.

-d --data-relocs: att flytta och identifiera saknade objekt.

-r --function-relocs: att flytta dataobjekt och funktioner samt identifiera saknade funktioner eller objekt.

-help: för att ge hjälp om kommandoanvändning.

med kommandot LDD.

nu när du har slutfört installationen är du redo att lära dig hur du använder LDD-kommandot i Linux. Vi kommer att visa detta tillsammans med hur det hjälper till att identifiera delade bibliotek.

vi kommer att titta på de delade biblioteken för Bash, standardskalet på Linux. Det ansvarar för att utföra kommandon och tillhandahålla ett gränssnitt mellan användare och operativsystem.

för att använda kommandot LDD, följ dessa steg:

  1. börja med att öppna kommandoterminalen genom att trycka på Ctrl + Alt + T på tangentbordet.
  2. Leta sedan upp sökvägen med kommandot which eller whereis följt av kommandot LDD genom att skriva följande:
$ which bash$ whereis bash$ ldd /usr/bin/bash
LDD-kommando i Linux

som du kan se är de delade biblioteksberoende synliga. För en detaljerad och mer invecklad översikt, använd flaggan -v med kommandot $ ldd enligt följande:

$ ldd -v /usr/bin/bash
LDD-kommando i Linux

på samma sätt kan vi använda flaggan -u för att visa de oanvända beroenden.

$ ldd -u /usr/bin/bash
-u flagga

i det fall som visas ovan finns inga oanvända beroenden. Det rekommenderas alltid att hålla flikar på vilka bibliotek som är lediga och konsumerar minne. Om du inte gör det kan du ladda upp din kärna med oanvända filer, vilket hindrar prestanda. Det skulle vara till hjälp att kolla in vår artikel om hur man frigör utrymme på Ubuntu.

för data-och funktionsförflyttningar använder vi flaggorna -d respektive -r tillsammans med kommandot $ ldd.

$ ldd -d /usr/bin/bash$ ldd -r /usr/bin/bash
LDD-kommando i Linux

dessa flaggor hjälper också till att identifiera saknade objekt och funktioner.

sist men inte minst kan vi använda flaggan --help för en snabb konsultation om flaggorna och deras respektive åtgärder.

--hjälp flagga

begränsningar av kommandot LDD.

det bör noteras att LDD-kommandot inte fungerar på program som inte är dynamiskt körbara, “a.out” delade bibliotek eller filer som är föråldrade eller utvecklades innan LDD kom ut.

slutligen rekommenderas att LDD-kommandon inte ska användas med otillförlitliga källor eftersom det kan leda till plötsliga fel och undantag.

manualsidan för LDD föreslår ett alternativt kommando som består av objdump och grep verktyg.

 ~/$objdump -p /path/program/grep NEEDED

LDD är en av de undergrävda instruktionerna som, om de används på rätt sätt, kan göra en väsentlig skillnad i din interaktion med operativsystemet. Det är ett kraftfullt länkkommando med ett specifikt syfte, och det levererar definitivt. För mer information om kommandot och dess användning kan du gå till man-sidan för kommandot LDD.

Leave a Reply