jak používat příkaz LDD v Linuxu
zajímá Vás, jak používat příkaz LDD v Linuxu?
Linux nabízí dostatečnou flexibilitu, protože umožňuje vyladit váš systém podle vašich potřeb. To znamená, že systém můžete snadno ovládat prostřednictvím terminálu. Kromě toho můžete ovládat různé parametry a kontrolovat soubory sdílené a používané různými programy ve vašem systému.
zejména jeden příkaz umožňuje rozpoznat knihovny používané daným kontrolovaným programem. Toto je příkaz LDD vyvinutý Rolandem McGrathem a Ulrichem Drepperem.
LDD (seznam dynamických závislostí) usnadňuje uživateli identifikovat závislosti knihovny, které jsou sdíleny v různých spustitelných souborech.
tato příručka vám pomůže naučit se používat příkaz LDD v Linuxu.
takže bez dalších okolků, začněme!
typy knihoven.
knihovna je dobře definovaná sada funkcí, objektů, proměnných, tříd, specifikací typu, podmínek a podprogramů, které diktují operace souborů a programů, aniž by bylo nutné udržovat zdrojový kód.
existují tři typy knihoven:
- dynamické knihovny: jedná se o knihovny používané programy, které jsou kompilovány v menším měřítku. Jak název napovídá, je dynamicky načten v době spuštění, takže jedna kopie se dynamicky používá ke spuštění více programů.
tím se snižuje spotřeba paměti, čímž se minimalizuje velikost programu a zlepšuje se výkon. Obvykle mají rozšíření “.so
“.
- statické knihovny: tyto knihovny používají kompletní programy. Propojují programy bez překompilování zdrojového kódu, čímž šetří čas. Tyto knihovny jsou Samostatně zahrnuty do programových souborů, které vyžadují jeho funkce. Obvykle za nimi následuje přípona “
.a
“. - sdílené knihovny: jedná se o individuálně nainstalované knihovny, které programy automaticky používají při splátkách. Mohou přepsat určité části již existující knihovny, když program provádí určité úkoly. Navíc mohou být použity za běhu s naším kódem nebo programem.
většina spustitelných souborů, které používáme každý den, obsahuje sdílené knihovny. Příkaz LDD uvádí dynamické závislosti knihovny. Tyto knihovny jsou znovu použity a sdíleny napříč programy, aby usnadnily vývoj programů a snížily jejich velikost a zatížení paměti počítače.
v Linuxu jsou tyto soubory ve formě přípony “.so
” a jsou uloženy v /usr/lib*
nebo jednoduše /lib*
.
různé distribuce systémů Linux mohou balit jinou sadu knihoven pro program, takže to funguje odlišně na různých verzích operačního systému. Pokud Sdílená knihovna pro program není ve vašem systému k dispozici, zobrazí se chyba, která může vypadat takto:
Sudo: error while loading shared libraries: libpthread.so.0:Cannot open shared object file: no such file or directory.
pak můžeme zkontrolovat sdílené knihovny pro konkrétní program pomocí příkazu LDD.
instalace příkazu LDD.
příkaz LDD je ze své podstaty dostupný téměř v každé distribuci Linuxu. V případě, že tomu tak není, můžete jej nainstalovat pomocí následujícího příkazu:
$ sudo apt-get install libc-bin
příkaz $ ldd
má následující syntaxi:
$ ldd <options> <executable>
nebo obecněji:
$ ldd -v /path/to/program/executable
LDD je základní, ale výkonný příkaz. Nabízí pomoc a další varianty pomocí různých příznaků. Jsou stručně popsány níže.
–version
: zobrazení aktuálně používané verze ldd.
-v --verbose
: Chcete-li zobrazit informace složitě.
-u --unused
: zobrazení nevyužitých závislostí.
-d --data-relocs
: přemístit a identifikovat chybějící objekty.
-r --function-relocs
: přemístit datové objekty a funkce, stejně jako identifikovat chybějící funkce nebo objekty.
–-help
: Chcete-li poskytnout pomoc ohledně použití příkazu.
pomocí příkazu LDD.
Nyní, když jste dokončili instalaci, jste připraveni se naučit používat příkaz LDD v Linuxu. Ukážeme to spolu s tím, jak pomáhá identifikovat sdílené knihovny.
podíváme se do sdílených knihoven pro Bash, standardní shell na Linuxu. Je zodpovědný za provádění příkazů a poskytování rozhraní mezi uživatelem a operačním systémem.
Chcete-li použít příkaz LDD, postupujte takto:
- začněte otevřením příkazového terminálu stisknutím kláves Ctrl + Alt + T na klávesnici.
- dále vyhledejte cestu pomocí příkazu
which
nebowhereis
následovaného příkazem LDD zadáním následujícího:
$ which bash$ whereis bash$ ldd /usr/bin/bash
jak vidíte, sdílené závislosti knihovny jsou viditelné. Pro podrobnější a složitější přehled použijte příznak -v
s příkazem $ ldd
následujícím způsobem:
$ ldd -v /usr/bin/bash
podobně můžeme použít příznak -u
k zobrazení nevyužitých závislostí.
$ ldd -u /usr/bin/bash
ve výše uvedeném případě neexistují žádné nevyužité závislosti. Vždy se doporučuje mít přehled o tom, které knihovny jsou nečinné a spotřebovávají paměť. Pokud tak neučiníte, může dojít k načtení jádra nepoužívanými soubory, což může bránit výkonu. Bylo by užitečné podívat se na náš článek o tom, jak uvolnit místo na Ubuntu.
pro přemístění dat a funkcí používáme vedle příkazu $ ldd
příznaky -d
a -r
.
$ ldd -d /usr/bin/bash$ ldd -r /usr/bin/bash
tyto příznaky také pomáhají identifikovat chybějící objekty a funkce.
v neposlední řadě můžeme použít příznak --help
pro rychlou konzultaci ohledně vlajek a jejich příslušných akcí.
omezení příkazu LDD.
je třeba poznamenat, že příkaz LDD nebude fungovat na programech, které nejsou dynamicky spustitelné, “a.out
” sdílené knihovny nebo soubory, které jsou zastaralé nebo byly vyvinuty před vydáním LDD.
nakonec se doporučuje, aby příkazy LDD nebyly používány s nedůvěryhodnými zdroji, protože to může mít za následek náhlé chyby a výjimky.
ruční stránka pro LDD navrhuje alternativní příkaz, který se skládá z nástrojů objdump
a grep
.
~/$objdump -p /path/program/grep NEEDED
LDD je jedním z těch podkopaných pokynů, které mohou při správném použití výrazně změnit vaši interakci s operačním systémem. Je to silný příkaz propojení s konkrétním účelem, a to rozhodně přináší. Pro více informací o příkazu a jeho použití, můžete zamířit na manuálovou stránku pro příkaz LDD.
Leave a Reply