Login

Benvenuto, Ospite
Nome utente: Password: Ricordami
  • Pagina:
  • 1

ARGOMENTO:

Dubbio su domanda Shared Libraries 4 Anni 4 Mesi fa #1

  • pmenonna
  • Avatar di pmenonna Autore della discussione
  • Offline
  • Junior Member
  • Junior Member
  • Messaggi: 12
  • Ringraziamenti ricevuti 0
Ciao a tutti,

nell'esame del capitolo 25, mi sono imbattuto in questa domanda:

Which command is used to display the shared libraries of a dynamically linked executable?

Se ho capito bene la domanda vuole sapere il comando per visualizzare le librerie condivise di un eseguibile dinamico linkato.


E' vero che il comando ldd mi permette di vedere le dipendenze di un programma specifico con le librerie.

Però anche ldconfig mi permette di vedere le cartelle o i file che sono linkati a una specifica libreria.

Avevo messo ldconfig come risposta, ma non era corretta.

Per esempio guardando le prime 20 righe con ldconfig posso trovare queste cartelle in cui trovo le varie librerie:

ldconfig -v | head -20

/usr/lib64/atlas:
libtatlas.so.3 -> libtatlas.so.3.10
libsatlas.so.3 -> libsatlas.so.3.10
/usr/lib64//bind9-export:
libisccfg-export.so.160 -> libisccfg-export.so.160.2.1
libisc-export.so.169 -> libisc-export.so.169.0.3
libirs-export.so.160 -> libirs-export.so.160.0.5
libdns-export.so.1102 -> libdns-export.so.1102.1.2
/usr/lib64/mysql:
libmysqlclient.so.18 -> libmysqlclient.so.18.0.0
/lib:
/lib64:
libgstplayer-1.0.so.0 -> libgstplayer-1.0.so.0.1004.0
libgstbadaudio-1.0.so.0 -> libgstbadaudio-1.0.so.0.1004.0
libgstadaptivedemux-1.0.so.0 -> libgstadaptivedemux-1.0.so.0.1004.0
libgnome-desktop-3.so.12 -> libgnome-desktop-3.so.12.2.0
libgrlpls-0.3.so.0 -> libgrlpls-0.3.so.0.0.0
libgstinsertbin-1.0.so.0 -> libgstinsertbin-1.0.so.0.1004.0
libgstbadvideo-1.0.so.0 -> libgstbadvideo-1.0.so.0.1004.0
libgstbadbase-1.0.so.0 -> libgstbadbase-1.0.so.0.1004.0

Con ldd mi specifica ad esempio le librerie da cui dipende la shell bash:

ldd /usr/bin/bash

linux-vdso.so.1 => (0x00007fff6dbcc000)
libtinfo.so.5 => /lib64/libtinfo.so.5 (0x00007f2a2d4fe000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f2a2d2fa000)
libc.so.6 => /lib64/libc.so.6 (0x00007f2a2cf2c000)
/lib64/ld-linux-x86-64.so.2 (0x00007f2a2d728000)[/i]


Probabilmente non ho capito bene la domanda e i comandi usati, ma mi sembrano simili per quello che viene richiesto.

Si prega Accedi a partecipare alla conversazione.

Dubbio su domanda Shared Libraries 4 Anni 4 Mesi fa #2

  • gica78r
  • Avatar di gica78r
  • Offline
  • Platinum Member
  • Platinum Member
  • Messaggi: 166
  • Ringraziamenti ricevuti 9
Ciao Paolo,

la domanda ti chiede il comando per vedere a quali librerie condivise deve essere linkato un certo eseguibile, e la risposta corretta è ldd:

NAME
ldd - print shared object dependencies

SYNOPSIS
ldd [option]... file...

DESCRIPTION
ldd prints the shared objects (shared libraries) required by each program or shared object specified on the command line.


Infatti ldd si aspetta come argomento un file eseguibile (o al limite un altro shared object) del quale mostrare le dipendenze.

Diversamente, ldconfig serve ad informare il sistema (più precisamente il link-loader) su come reperire le librerie condivise richieste dagli eseguibili ELF, ed infatti il suo output (con l'opzione -v) ti mostra tutte le librerie condivise che il sistema prende in considerazione (tramite il file di configurazione di default /etc/ld.so.conf) per generare la cache delle librerie condivise.

Si prega Accedi a partecipare alla conversazione.

  • Pagina:
  • 1
Moderatori: Francesco.Alojpalombi