Uzante la "ldd" Komandon en Linukso

La ldd-komando povas esti uzata por montri al vi la dividitajn bibliotekojn postulitajn de iu ajn programo.

Ĉi tio utilas por funkcii kiam ekzistas manko de dependeco kaj povas esti uzata por listigi mankantajn funkciojn kaj objektojn.

ldd Komando Sintakso

Ĉi tiu estas la taŭga sintakso kiam vi uzas la ldd-komandon:

ldd [OPTION] ... FILEO ...

Jen la disponeblaj lrd-komandaj ŝaltiloj, kiuj povas esti enmetitaj en la lokon [OPTION] en la supra komando:

--helpi presi ĉi tiun helpon kaj eliri --version presi versio kaj eliro -d, --data-relocs procesi datumoklokiĝojn -r, --function-relocs procesi datumojn kaj funkciojn anstataŭigoj -u, --unis presitajn neuzitajn rektajn dependecojn -v, --verbose presas ĉiujn informojn

Kiel Uzi la Ldd-Komandon

Vi povas uzi la sekvan komandon por ricevi pli da informoj de iu ajn ordinara ldd:

ldd -v / path / to / program / executable

La eligo montras informajn informojn same kiel la vojojn kaj adresojn al la dividitaj bibliotekoj, kiel ĉi tiu:

ldd libshared.so linux-vdso.so.1 => (0x00007fff26ac8000) libc.so.6 => /lib/libc.so.6 0x00007ff1df55a000) /lib64/ld-linux-x86-64.so.2 (0x00007ff1dfafe000)

Se la SO-dosiero ne ekzistas, vi povas trovi la mankantajn bibliotekojn uzante la jenan komandon:

ldd -d vojo / al / programo

La eligo estas simila al la sekvaj:

linux-vdso.so.1 (0x00007ffc2936b000) /home/gary/demo/garylib.so => ​​not foundlibc.so.6 => usr / lib / libc.so.6 (0x00007fd0c6259000) / lib64 / ld-linux-x86 -64.so.2 (0x00007fd0c65fd000)

Grava: Neniam kuru la lrd-komandon kontraŭ nefidita programo, ĉar la komando efektive efektivigas ĝin. Ĉi tio estas pli sekura alternativo, kiu montras nur la rektajn dependecojn kaj ne la tutan dependan arbon: objdump -p / path / to / program | grep bezonata .

Kiel Trovi la Vojon al Apliko

Vi devas provizi la plenan vojon al aplikaĵo se vi volas trovi ĝiajn dependaĵojn kun ldd, kiujn vi povas fari plurajn manierojn.

Ekzemple, jen kiel vi trovos la vojon al Firefox :

Trovu / -nomon fajranfumilon

La problemo kun la komando troviĝas , tamen, ke ĝi ne nur listigos la ejektablan, sed ĉie, ke Firefox situas, kiel ĉi tiu:

Ĉi tiu enfokusigas estas iom da overkill kaj vi eble bezonos uzi la sudo-komandon por levi viajn privilegiojn, alie vi eble ricevos multajn permesojn malkonfirmitajn erarojn.

Estas multe pli facile uzi la komandon kie trovi la vojon de aplikaĵo:

kie firefox

Ĉi tiu fojo la eligo povus aspekti kiel ĉi:

/ usr / bin / firefox

/ ktp / firefox

/ usr / lib / firefox

Ĉio, kion vi devas fari nun por trovi la elektitajn bibliotekojn por Firefox, tajpas la jenan komandon:

ldd / usr / bin / firefox

La eligo de la komando estos io simila al ĉi tio:

linux-vdso.so.1 (0x00007ffff8364000)
libpthread.so.0 => /usr/lib/libpthread.so.0 (0x00007feb9917a000)
libdl.so.2 => /usr/lib/libdl.so.2 (0x00007feb98f76000)
libstdc ++. so.6 => /usr/lib/libstdc++.so.6 (0x00007feb98bf4000)
libm.so.6 => /usr/lib/libm.so.6 (0x00007feb988f6000)
libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x00007feb986e0000)
libc.so.6 => /usr/lib/libc.so.6 (0x00007feb9833c000)
/lib64/ld-linux-x86-64.so.2 (0x00007feb99397000)

Linux-vdso.so.1 estas la nomo de la biblioteko kaj la heksa nombro estas la adreso, kie la biblioteko estos ŝarĝita en memoro.

Vi rimarkos multajn aliajn liniojn, ke la => simbolo sekvas vojon. Ĉi tiu estas la vojo al la fizika binara; la heksa nombro estas la adreso, kie la biblioteko estos ŝarĝita.