Naučte se správu závislostí pomocí příkazu ldd, abyste mohli lépe spravovat svůj počítač se systémem Linux a nainstalované balíčky.
Správa závislostí je nedílnou součástí údržby vašeho systému Linux. Software je složitý a spoléhá na velké množství sdílených knihoven a souborů. Někdy je obtížné sledovat soubory požadované aplikací.
Zde vstupuje do hry příkaz ldd na Linuxu. ldd je vynalézavý nástroj příkazového řádku pro sledování závislostí sdílených objektů požadovaných aplikací.
Pojďme se naučit, jak můžete využít příkaz ldd ve svůj prospěch a stát se profesionálem ve správě závislostí na Linuxu!
Co jsou to závislosti na balíčcích?
Software není jen samostatný zdrojový kód, ale spíše sloučení nativního zdrojového kódu a vypůjčeného kódu z externích knihoven. Když tyto knihovny a další sdílené objekty ve vašem systému chybí, aplikace na nich závislá může selhat nebo se rovnou odmítne spustit.
Všechny tyto sdílené soubory, balíčky, knihovny atd. se kumulativně nazývají závislosti na Linuxu. Ačkoli tato krátká definice poskytuje přibližnou představu o závislostech, skutečný obraz je o něco složitější, a proto je důležité se naučit
jaké jsou závislosti balíčku do hloubky.Co je příkaz ldd a jak funguje?
ldd je zkratka pro Seznam dynamických závislostí. Jak název napovídá, ldd uvádí všechny sdílené objekty požadované aplikací.
Funguje to vyvoláním dynamického linkeru se speciálně nastaveným proměnné prostředí. Když spustíte ldd s umístěním binárního souboru, vrátí výstup obsahující seznam závislostí, jejich umístění a hexadecimální hodnotu představující, kde v paměti jsou načteny.
Hledání závislostí sdílených objektů pomocí příkazu ldd
Nyní, když máte jasnou představu o tom, o čem ldd je, pojďme si to vyzkoušet a zjistit, jak s ním najít softwarové závislosti.
Než se naučíte používat ldd, nejprve si vytiskněte nainstalovanou verzi ldd a ověřte, zda jej máte nainstalovaný v systému:
ldd --verze
Pokud se vrátí chyba "příkaz nenalezen"., musíte nejprve nainstalovat ldd.
Na systémech založených na Ubuntu a Debianu spusťte:
sudo apt install libc-bin
Pro distribuce založené na Arch:
sudo pacman -S glibc
Na RHEL a Fedoře:
sudo dnf nainstalujte glibc-common
S nainstalovaným ldd se nyní můžete soustředit na učení se, jak jej používat. Zde je základní syntaxe příkazu ldd:
ldd binární_umístění
V případě, že neznáte umístění binárního souboru, můžete použít jeden z mnoho operátorů příkazového řádku Linuxu a zkombinujte výstup příkazu which s ldd, abyste našli závislosti pro balíček:
ldd -příznak $(který binární_název)
Příkaz ldd nabízí čtyři různé možnosti úpravy výstupu. Oni jsou:
- -proti: Vytiskne podrobný výstup včetně dalších informací, jako jsou informace o verzi pro každou závislost
- -u: Vypíše všechny nepoužívané závislosti, což znamená závislosti, které jsou načteny, ale nejsou implementovány
- -d: Vytiskne chybějící objekty a provede přemístění
- -r: Tiskne chybějící objekty a funkce a provádí přemístění
Správa závislostí balíčků na Linuxu
S ldd ve vašem softwarovém arzenálu budete moci odstraňovat problémy související se závislostí sdílených objektů s vaší aplikací.
Navíc, protože ldd také zobrazuje umístění, kde je knihovna načtena, budete moci ladit aplikaci a lépe porozumět tomu, jak je konkrétní knihovna implementována. ldd také vytiskne verze sdílených knihoven používaných v aplikaci.
Pomocí této funkce můžete ve svých aplikacích auditovat jakékoli potenciální chyby zabezpečení spojené se zastaralou verzí sdílené knihovny.
Správa závislostí je základní dovedností, která je zásadní pro udržení zdravého systému Linux. Někdy se však může balíček rozbít, přestože všechny jeho závislosti jsou zdravé. Je důležité, abyste věděli, jak najít a opravit poškozené balíčky.