Come usare il comando LDD in Linux

Ti stai chiedendo come usare il comando LDD in Linux?

Linux offre ampia flessibilità in quanto consente di sintonizzare il sistema in base alle proprie esigenze. Ciò significa che è possibile utilizzare facilmente il sistema tramite il terminale. Inoltre, è possibile controllare vari parametri e tenere un controllo sui file condivisi e utilizzati da diversi programmi sul sistema.

Un comando, in particolare, consente di riconoscere le librerie utilizzate da un determinato programma sotto controllo. Questo è il comando LDD sviluppato da Roland McGrath e Ulrich Drepper.

LDD (Elenco dipendenze dinamiche) facilita all’utente di identificare le dipendenze della libreria che vengono condivise tra vari file eseguibili.

Questa guida ti aiuterà a imparare come usare il comando LDD in Linux.

Quindi, senza ulteriori indugi, cominciamo!

Tipi di librerie.

Una libreria è un insieme ben definito di funzioni, oggetti, variabili, classi, specifiche di tipo, condizioni e subroutine che dettano le operazioni di file e programmi, senza dover mantenere il codice sorgente.

Esistono tre tipi di librerie:

  1. Librerie dinamiche: si tratta di librerie utilizzate da programmi compilati su scala più piccola. Come suggerisce il nome, viene caricato dinamicamente al momento dell’esecuzione, quindi una singola copia viene utilizzata dinamicamente per eseguire più programmi.

Ciò riduce il consumo di memoria, riducendo così al minimo le dimensioni del programma e migliorando le prestazioni. Di solito hanno estensioni ” .so“.

  1. Librerie statiche: queste librerie sono utilizzate da programmi completi. Collegano i programmi senza ricompilare il codice sorgente, risparmiando così tempo. Queste librerie sono incluse separatamente nei file di programma che richiedono le sue funzioni. Di solito sono seguiti da un’estensione” .a“.
  2. Librerie condivise: si tratta di librerie installate individualmente che vengono automaticamente utilizzate dai programmi al momento della rata. Possono sovrascrivere parti specifiche di una libreria preesistente quando il programma esegue determinate attività. Inoltre, possono essere utilizzati in fase di esecuzione con il nostro codice o un programma.

La maggior parte dei file eseguibili che utilizziamo quotidianamente contengono librerie condivise. Il comando LDD elenca le dipendenze della libreria dinamica. Queste librerie vengono riutilizzate e condivise tra i programmi per facilitare lo sviluppo di programmi e ridurre le loro dimensioni e il carico sulla memoria del computer.

In Linux, questi file sono sotto forma di estensione “.so” e sono immagazzinati in /usr/lib* o semplicemente /lib*.

Varie distribuzioni di sistemi Linux possono confezionare un diverso set di librerie per un programma, facendolo funzionare in modo diverso su diverse versioni del sistema operativo. Quando una libreria condivisa per un programma non è disponibile sul sistema, viene visualizzato un errore simile a questo:

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

Possiamo quindi controllare le librerie condivise per un particolare programma utilizzando il comando LDD.

Installazione del comando LDD.

Il comando LDD è intrinsecamente disponibile in quasi tutte le distribuzioni Linux. Nel caso in cui non lo sia, è possibile utilizzare il seguente comando per installarlo:

$ sudo apt-get install libc-bin

Il comando $ ldd ha la seguente sintassi:

$ ldd <options> <executable>

O più in generale:

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

LDD è un comando di base, ma potente. Offre aiuto e altre varianti utilizzando diverse bandiere. Sono brevemente descritti di seguito.

–version: Per visualizzare la versione ldd attualmente in uso.

-v --verbose: Per visualizzare le informazioni in modo complicato.

-u --unused: Per visualizzare le dipendenze inutilizzate.

-d --data-relocs: Per riposizionare e identificare gli oggetti mancanti.

-r --function-relocs: Per spostare oggetti e funzioni dati e identificare funzioni o oggetti mancanti.

-help: Per fornire aiuto per quanto riguarda l’utilizzo dei comandi.

Utilizzando il comando LDD.

Ora che hai completato l’installazione, sei pronto per imparare come usare il comando LDD in Linux. Dimostreremo questo insieme a come aiuta a identificare le librerie condivise.

Esamineremo le librerie condivise per Bash, la shell standard su Linux. È responsabile dell’esecuzione dei comandi e della fornitura di un’interfaccia tra utente e sistema operativo.

Per utilizzare il comando LDD, attenersi alla seguente procedura:

  1. Inizia aprendo il Terminale dei comandi premendo Ctrl + Alt + T sulla tastiera.
  2. Quindi, individuare il percorso utilizzando il comando which o whereis seguito dal comando LDD digitando quanto segue:
$ which bash$ whereis bash$ ldd /usr/bin/bash
Comando LDD in Linux

Come puoi vedere, le dipendenze della libreria condivisa sono visibili. Per una panoramica dettagliata e più complessa, utilizzare il flag -v con il comando $ ldd come segue:

$ ldd -v /usr/bin/bash
Comando LDD in Linux

Allo stesso modo, possiamo usare il flag -u per visualizzare le dipendenze inutilizzate.

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

Nel caso mostrato sopra, non ci sono dipendenze inutilizzate. Si consiglia sempre di tenere sotto controllo quali librerie sono inattive e consumano memoria. Non farlo potrebbe caricare il kernel con file inutilizzati, di conseguenza ostacolando le prestazioni. Sarebbe utile controllare il nostro articolo su come liberare spazio su Ubuntu.

Per le rilocazioni di dati e funzioni, utilizziamo rispettivamente i flag -d e -r insieme al comando $ ldd.

$ ldd -d /usr/bin/bash$ ldd -r /usr/bin/bash
Comando LDD in Linux

Questi flag aiutano anche a identificare oggetti e funzioni mancanti.

Ultimo, ma non meno importante, possiamo usare il flag --help per una rapida consultazione riguardo ai flag e alle loro rispettive azioni.

--bandiera di aiuto

Limitazioni del comando LDD.

Va notato che il comando LDD non funzionerà su programmi che non sono eseguibili dinamicamente, “a.out ” librerie condivise o file obsoleti o sviluppati prima che l’LDD uscisse.

Infine, si consiglia che i comandi LDD non dovrebbero essere utilizzati con fonti non attendibili in quanto possono causare errori bruschi ed eccezioni.

La pagina di manuale per LDD suggerisce un comando alternativo che è composto da objdump e grep utilità.

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

LDD è una di quelle istruzioni minate che, se utilizzate nel modo giusto, possono fare una differenza sostanziale nell’interazione con il sistema operativo. È un potente comando di collegamento con uno scopo specifico e offre sicuramente. Per ulteriori dettagli sul comando e sul suo utilizzo, è possibile accedere alla pagina man per il comando LDD.

Leave a Reply