Tanulja meg a függőségkezelést az ldd paranccsal a Linux-gép és a telepített csomagok jobb adminisztrálása érdekében.
A függőségek kezelése a Linux rendszer karbantartásának szerves része. A szoftver összetett, és számos megosztott könyvtárra és fájlra támaszkodik. Néha nehéz nyomon követni az alkalmazások által igényelt fájlokat.
Itt lép életbe az ldd parancs Linuxon. Az ldd egy találékony parancssori eszköz, amellyel nyomon követheti az alkalmazások által igényelt megosztott objektum-függőségeket.
Tanuljuk meg, hogyan használhatja előnyére az ldd parancsot, és hogyan válhat profivá a Linux-függőségek kezelésében!
Mik azok a csomagfüggőségek?
A szoftver nem csupán önálló forráskód, hanem a natív forráskód és a külső könyvtárakból kölcsönzött kód ötvözete. Ha ezek a könyvtárak és más megosztott objektumok hiányoznak a rendszerről, egy tőlük függő alkalmazás hibásan működhet, vagy egyenesen megtagadhatja az indulást.
Mindezeket a megosztott fájlokat, csomagokat, könyvtárakat stb. összesítve függőségeknek nevezzük Linuxon. Bár ez a rövid meghatározás hozzávetőleges képet ad a függőségekről, a valós kép ennél kicsit összetettebb, ezért fontos megtanulni
milyen csomagfüggőségek vannak mélységében.Mi az ldd parancs és hogyan működik?
Az ldd a List Dynamic Dependencies rövidítése. Ahogy a neve is sugallja, az ldd felsorolja az összes megosztott objektumot, amelyre egy alkalmazásnak szüksége van.
Úgy működik, hogy meghívja a speciálisan beállított dinamikus linkert Környezeti változók. Ha az ldd-t egy bináris helyével futtatja, akkor egy kimenetet ad vissza, amely tartalmazza a függőségek listáját, azok helyét, és egy hexadecimális értéket, amely jelzi, hogy a memóriában hol vannak betöltve.
Megosztott objektum-függőségek keresése az ldd paranccsal
Most, hogy világos elképzelése van arról, hogy miről is szól az ldd, kezdjük el a gyakorlatot, és tanuljuk meg, hogyan találhat szoftverfüggőségeket vele.
Mielőtt megtanulná az ldd használatát, először ellenőrizze, hogy telepítve van-e a rendszerén az ldd telepített verziójának kinyomtatásával:
ldd --verzió
Ha visszajön "parancs nem található" hiba, először telepítenie kell az ldd-t.
Ubuntu és Debian alapú rendszereken futtassa:
sudo apt install libc-bin
Arch alapú disztribúciók esetén:
sudo pacman -S glibc
A RHEL-en és a Fedorán:
sudo dnf telepítése glibc-common
Ha az ldd telepítve van, most már a használat megtanulására összpontosíthat. Íme az ldd parancs alapvető szintaxisa:
ldd bináris_hely
Ha nem ismeri a bináris helyét, használhatja az egyiket sok Linux parancssori operátor és kombinálja a which parancs kimenetét az ldd-vel, hogy megtalálja a csomag függőségeit:
ldd -jelző $(ami bináris_név)
Az ldd parancs négy különböző lehetőséget kínál a kimenet módosítására. Ők:
- -v: Részletes kimenetet nyomtat, beleértve a további információkat, például az egyes függőségek verzióinformációit
- -u: Kinyomtatja az összes nem használt függőséget, vagyis a betöltött, de nem implementált függőséget
- -d: Kinyomtatja a hiányzó objektumokat és áthelyezéseket hajt végre
- -r: Kinyomtatja a hiányzó objektumokat és funkciókat, és végrehajtja az áthelyezéseket
Csomagfüggőségek kezelése Linuxon
Az ldd szoftverarzenáljával elháríthatja az alkalmazás megosztott objektumfüggőségével kapcsolatos problémákat.
Ezen túlmenően, mivel az ldd azt a helyet is kiadja, ahol a könyvtár betöltődik, így hibakeresést végezhet egy alkalmazáson, és jobban megértheti, hogyan valósult meg egy adott könyvtár. Az ldd az alkalmazásokban használt megosztott könyvtárak verzióit is kinyomtatja.
Ezzel a funkcióval ellenőrizheti alkalmazásait a megosztott könyvtár elavult verziójához kapcsolódó esetleges sebezhetőségek szempontjából.
A függőségkezelés olyan alapvető készség, amely kulcsfontosságú a Linux rendszer egészségének megőrzéséhez. Néha azonban egy csomag elromolhat annak ellenére, hogy minden függősége egészséges. Fontos, hogy tudja, hogyan találja meg és javítsa ki a törött csomagokat.