hogyan kell használni az LDD parancsot Linuxban
kíváncsi, hogyan kell használni az LDD parancsot Linuxban?
a Linux bőséges rugalmasságot kínál, mivel lehetővé teszi a rendszer igényeinek megfelelő hangolását. Ez azt jelenti, hogy a rendszert a terminálon keresztül könnyen működtetheti. Ezenkívül különböző paramétereket vezérelhet, és ellenőrizheti a rendszer különböző programjai által megosztott és használt fájlokat.
egy parancs különösen lehetővé teszi az adott vizsgált program által használt könyvtárak felismerését. Ez az LDD parancs, amit Roland McGrath és Ulrich Drepper fejlesztett ki.
az LDD (List Dynamic Dependencies) lehetővé teszi a felhasználó számára, hogy azonosítsa a különböző futtatható fájlok között megosztott könyvtárfüggőségeket.
ez az útmutató segít megtanulni, hogyan kell használni az LDD parancsot Linuxban.
tehát minden további nélkül kezdjük!
könyvtárak típusai.
a könyvtár függvények, objektumok, változók, osztályok, típusspecifikációk, feltételek és szubrutinok jól definiált halmaza, amelyek a fájlok és programok működését diktálják anélkül, hogy fenn kellene tartaniuk a forráskódot.
három típusú könyvtár létezik:
- dinamikus könyvtárak: ezek olyan könyvtárak, amelyeket kisebb léptékben összeállított programok használnak. Ahogy a neve is mutatja, dinamikusan töltődik be a végrehajtás idején, így egyetlen példányt dinamikusan használnak több program futtatására.
ez csökkenti a memóriafelhasználást, ezáltal minimalizálja a program méretét és javítja a teljesítményt. Általában” .so
” kiterjesztéssel rendelkeznek.
- statikus könyvtárak: ezeket a könyvtárakat teljes programok használják. Összekapcsolják a programokat a forráskód újrafordítása nélkül, ezáltal időt takarítva meg. Ezek a könyvtárak külön szerepelnek a funkciókat igénylő programfájlokban. Ezeket általában egy “
.a
” kiterjesztés követi. - megosztott könyvtárak: ezek egyénileg telepített könyvtárak, amelyeket a programok részletfizetéskor automatikusan használnak. Felülbírálhatják egy már létező könyvtár bizonyos részeit, amikor a program bizonyos feladatokat hajt végre. Ráadásul futásidőben is használhatók a kódunkkal vagy egy programmal.
a legtöbb futtatható fájl, amelyet naponta használunk, megosztott könyvtárakat tartalmaz. Az LDD parancs felsorolja a dinamikus könyvtárfüggőségeket. Ezeket a könyvtárakat újra felhasználják és megosztják a programok között, hogy megkönnyítsék a programok fejlesztését, valamint csökkentsék méretüket és terhelésüket a számítógép memóriájában.
Linuxban ezek a fájlok “.so
” kiterjesztésűek, és /usr/lib*
vagy egyszerűen /lib*
formátumban vannak tárolva.
a Linux rendszerek különböző disztribúciói különböző könyvtárakat csomagolhatnak egy programhoz, így az az operációs rendszer különböző verzióin eltérően működik. Ha EGY program megosztott tárja nem érhető el a rendszeren, akkor a következő hibaüzenet jelenhet meg:
Sudo: error while loading shared libraries: libpthread.so.0:Cannot open shared object file: no such file or directory.
ezután az LDD paranccsal ellenőrizhetjük egy adott program megosztott könyvtárait.
az LDD parancs telepítése.
az LDD parancs szinte minden Linux disztribúcióban elérhető. Ha nem, akkor a következő paranccsal telepítheti:
$ sudo apt-get install libc-bin
a $ ldd
parancs szintaxisa a következő:
$ ldd <options> <executable>
vagy általánosabban:
$ ldd -v /path/to/program/executable
az LDD egy alapvető, mégis hatékony parancs. Segítséget és más variációkat kínál különböző zászlók használatával. Az alábbiakban röviden ismertetjük őket.
–version
: a jelenleg használt ldd verzió megjelenítése.
-v --verbose
: az információk bonyolult megjelenítéséhez.
-u --unused
: a fel nem használt függőségek megjelenítése.
-d --data-relocs
: a hiányzó tárgyak áthelyezése és azonosítása.
-r --function-relocs
: az adatobjektumok és funkciók áthelyezése, valamint a hiányzó funkciók vagy objektumok azonosítása.
–-help
: segítség a parancs használatával kapcsolatban.
az LDD parancs használatával.
most, hogy befejezte a telepítést, készen áll arra, hogy megtanulja, hogyan kell használni az LDD parancsot Linuxban. Bemutatjuk ezt, valamint azt, hogyan segít azonosítani a megosztott könyvtárakat.
megvizsgáljuk a Bash megosztott könyvtárait, amely a Linux szabványos héja. Felelős a parancsok végrehajtásáért és a felhasználó és az operációs rendszer közötti interfész biztosításáért.
az LDD parancs használatához kövesse az alábbi lépéseket:
- Kezdje a Parancsterminál megnyitásával a Ctrl + Alt + T billentyűkombinációval.
- Ezután keresse meg az elérési utat a
which
vagywhereis
paranccsal, majd az LDD paranccsal a következő beírásával:
$ which bash$ whereis bash$ ldd /usr/bin/bash
mint látható, a Megosztott könyvtár függőségek láthatók. A részletes és bonyolultabb áttekintéshez használja a -v
jelzőt a $ ldd
paranccsal az alábbiak szerint:
$ ldd -v /usr/bin/bash
hasonlóképpen használhatjuk a -u
jelzőt a fel nem használt függőségek megjelenítéséhez.
$ ldd -u /usr/bin/bash
a fent bemutatott esetben nincsenek fel nem használt függőségek. Mindig azt tanácsoljuk, hogy tartsa a füleket, amelyek a könyvtárak tétlen és fogyasztó memória. Ennek elmulasztása betöltheti a kernelt fel nem használt fájlokkal, következésképpen akadályozza a teljesítményt. Hasznos lenne megnézni cikkünket arról, hogyan szabadíthatunk fel helyet az Ubuntuban.
az adatok és a funkciók áthelyezéséhez a -d
és -r
jelzőket használjuk a $ ldd
parancs mellett.
$ ldd -d /usr/bin/bash$ ldd -r /usr/bin/bash
ezek a zászlók segítenek a hiányzó objektumok és funkciók azonosításában is.
végül, de nem utolsósorban, használhatjuk a --help
zászlót egy gyors konzultációhoz a zászlókkal és a megfelelő műveletekkel kapcsolatban.
az LDD parancs korlátai.
meg kell jegyezni, hogy az LDD parancs nem fog működni a nem dinamikusan végrehajtható programokon, a “a.out
” megosztott könyvtárakon vagy az elavult vagy az LDD megjelenése előtt kifejlesztett fájlokon.
végül azt javasoljuk, hogy az LDD parancsokat ne használják nem megbízható forrásokkal, mert hirtelen hibákat és kivételeket eredményezhetnek.
az LDD man oldala egy alternatív parancsot javasol, amely objdump
és grep
segédprogramokból áll.
~/$objdump -p /path/program/grep NEEDED
az LDD egyike azoknak az aláásott utasításoknak, amelyek helyes használat esetén jelentős változást hozhatnak az operációs rendszerrel való interakcióban. Ez egy erős összekötő parancs egy adott célra, és határozottan szállít. A paranccsal és annak használatával kapcsolatos további részletekért látogasson el az LDD parancs man oldalára.
Leave a Reply