Nos, a dep.pl egy olyan program, mely ávizsgálja a megadott file-okat, hogy megkeresse a futtatásukhoz szükséges osztott objektumokat (shared objects), majd eredményeit valamilyen formában megossza a felhasználóval. Ez lehet egy mindenre kiterjedô vagy egy mérsékelt mennyiségû jelentés, de akár az is megoldható, hogy mindössze a szükséges objektumok file-nevei jelenjenek meg.
A program mûködése az ldd programon alapul, így ha az nem tud megvizsgálni egy adott file-t, akkor a dep.pl sem fogja tudni.
A használat tulajdonképpen nagyon egyszerû, csak bele kell jönni. Ennek legjobb módja a gyakorlás, illetve a forrás elemzése.
dep.pl [opciók] file-ok...
--bare, -b
Amikor a program kiírja az osztott objektumok fileneveit, alapesetben mindet külön sorba írja. Ezen változtat ez az opció, melynek megadásakor mindössze egyetlen szóköz fogja elválasztani a fileneveket.
--chroot=[path], -C=[path]
Ha úgy tûnik, hogy egy program a [path]-on kívülre esik, akkor a dep.pl a neve elé illeszti a [path]-t, így az belülre kerül.
--check-area=[path], -c=[path]
Átugorja azon file-okat, amelyek a [path]-on kívül vannak, vagy azon belül ugyan, de kívüre mutatnak.
--err, -e
Minden üzenetet az STDERR-re ír, STDOUT helyett, az osztott objektumok filenevein kívül természetesen. Arra használható ez az opció, hogy a fileneveket tovább lehessen adni, miközben lászik, hogy hol tart.
--exclude=[list], -x=[list]
Kettôsponttal elválasztott listája azon file-oknak, melyeket át kell ugrani. Amennyiben egy itt szereplô file-név "/"-el kezdôdik, az egyeztetés az éppen ellenôrizendô filenévvel úgy fog menni, hogy, ha a filenév a kihagyandó szöveggel kezdódik, akkor át lesz ugorva. Az összes többi esetben az épp ellenôrizendô file át lesz ugorva, ha az itt felsorolt szövegrészletek bármelyikét tartalmazza.
--force=[ln], -f=[ln]
Megkéri a programot, hogy használja az [ln] nyelvet, amennyiben a megfelelô "üzenet-file" rendelkezésre áll.
--help, -h
Megmutatja az opciók summázatát, majd kilép.
--libs, -l
Kikapcsolja a részletes jelentés üzemmódot. Ez azt jelenti, hogy nem jeleníti meg az osztott objektumok neveit rögtön egy adott file ánézés után, csak a futás legvégén. Így kevesebb kimenetet produkál, és szerintem sokkal szebben néz ki.
--license, -L
Kiírja az GNU General Public License szövegét.
--nohup, -n
A HUP jelzés figyelmen kívül hagyása. Arra az esetre, ha közben el akarjuk hagyni a terminált.
--recursive, -R
A rekurzív üzemmód bekapcsolása. Ezen opció nélkül a dep.pl ha könyvtárral találkozik, átugorja, míg ha meg van adva, akkor a könyvtárlistá hozzáadja az átnézendô file-ok listájához.
--report, -r
Az alapértelmezett üzemmód. Ha megadtuk a parancssorban, akkor nem számit, hogy a --quit vagy --libs opciók valamelyike meg volt-e adva, vagy sem, a program figyelmen kívül hagyja ôket. Ebben a módban egyébkén részletes jelentést készíta dep.pl, ami azt jelenti, hogy minden egyes file ellenôrzése után azonnal kiírja, hogy milyen osztott objektumok szükségesek a futtatásához.
--stat=[level], -s=[level]
Csak fanatikusoknak. Ez az opció arra való, hogy egy egyszerû kis statisztiká jelentítsen meg a program a futás végén. Az opcionális [level] paraméter a részletességet határozza meg. Minnél nagyobb a szám, annál részletesebb lesz a statisztika.
--status=[boolean], -S=[boolean]
Az üzenetek ki- illetve bekapcsolására szolgál. Meg kell jegyeznem, hogy az üzenetek kikapcsolása nagyon rossz ötlet, mert ekkor az osztott objektumok nevei sem jelennek meg, így értelmét veszti a program. Létjogosultságot az ad neki, hogy így gyorsabb a program, lehet tesztelni. Vagy lehet gyönyörködni a statisztikában, anélkül, hogy a különbözô üzenetek elrondítanák a látványt...
--quiet, -q
Csendes üzemmód. Semmit üzenetet nem ír ki, csak a végén az osztott objektumok fileneveit.
--version, -v
A verziószám kiírása után kilép.
Bármily jó is lenne, a dep.pl nem tud csak úgy,
önmagában futni. Mivel a program nem más, mint egy script,
szüksége van egy értelmezôre, mégpedig a
perl-re. Enélkül a program semmit sem ér. Ha van perl
a rendszerben, akkor a script elsô sorá úgy kell módosítani,
hogy a megfelelô helyre mutasson. A legtöbb helyen a perl vagy a
/usr/bin/perl, vagy pedig a /usr/local/bin/perl helyen található.
Ha ezek egyike sem jó, akkor a which perl
utasításnak meg
kellene tudnia mondani, hogy hol van.
A másik program, ami elengedhetetlen a dep.pl mûködéséhez, az az ldd. Ha ez a program nem található meg a rendszeren, akkor valószínû, hogy a dep.pl ott nem lesz használható
A csomaghoz tartozik egy aranyos kis konfigurációs program is. Ez tud ugyan egyszerû szöveges módban is futni, de sokkal baráságosabb, ha dialógus dobozokkal dolgozhat az ember, ehhez azonban szükség van a dialog és whiptail csomagok egyikére. Na és persze bash-re, hogy a scriptet futtatni lehessen.
A bash ahhoz is kell, hogy a csomag egyes részeit a Makefile-ok segíségével lehessen telepíteni, ehhez azonban a make programra is szükség lesz.
Amikor a dep.pl fejlesztése elkezdôdött, a program még csak angolul beszélt, mostanra azonban bármilyen nyelven képes, csak le kell fordítani az üzeneteit és el kell a fordítást helyezni a megfelelô "üzenet-file"-ban. Alapesetben ezek a file-ok a /etc/dep.pl könyvtárban találhatóak, és messages.[nyelv] a nevük, ahol a [nyelv] az adott fordítás nyelvét jelenti.
Amennyiben nem kívánjuk a dep.pl minden indításakor megadni, hogy melyik nyelvet használja, nem kell mást tennünk, csak át kell írnunk a fô nyelvi konfigurációs állományt, melynek alapértelmezett helye /etc/dep.pl/language.conf.
Azoknak, akik nem mernek kisérletezgetni a programmal, áljon itt néhány példa a program használatára.
dep.pl /bin/bash /bin/ash /bin/*sh
Ez a parancs át fogja fésülni a/bin/bash
,/bin/ash
file-okat, és minden egyéb file-t a/bin
könyvtárban, amish
-ra végzôdik. Ráadásul, mivel semmilyen opciót nem adtunk meg, a program teljes részletességû jelentést fog produkálni.
dep.pl /bin/*sh /tmp
Ha kiadjuk ezt a parancsot, akkor a program átnéz mindensh
-ra végzôdô file-t a/bin
könyvtárban, részletes jelentést ad, és kihagyja a/tmp
könyvtárat, mert a rekurzív üzemmódot nem kapcsoltuk be.
dep.pl /bin/*sh /tmp -R
Amennyiben a dep.pl-t így hívjuk meg, ugyanazt az
eredményt kapjuk, mint a második példában, azzal
a különbséggel, hogy most a /tmp
könyvtár
tartalma is boncasztalra kerü, hisz be lett kapcsolva a rekurzív
üzemmód.
dep.pl /bin -lR
Ezt a szintaxist használva elérhetjük, hogy a program
végignézzen minden file-t a /bin
könyvtáron
belül, és ne részletes jelentést adjon, hanem csak
mérsékeltet.
dep.pl /bin -elR >/tmp/needed-files
Ugyanaz, mint a negyedik példa, de minden üzenetet az STDERR-re ír, csak az osztott objektumok nevei kerülnek az STDOUT-ra, amit átirányítunk egy file-ba, hogy késôbb foglalkozhassunk vele.
dep.pl /bin -elR 2>/tmp/messages
Ez megegyesik az elôzô példával, azt kivéve, hogy most az üzenetek kerülnek file-ba késôbbi elemzés céljából
dep.pl /bin -qR
Csendes üzemmód, azaz csak az osztott objektumok nevei kerülnek képernyôre, mind külön sorban.
dep.pl /bin -bqR
Akárcsak az elôzô példában, most is csöndesen dolgozik a program. A különbség mindössze annyi, hogy a végén a filenevek nem kerülnek külön sorokba.
dep.pl /bin -beqR
Tökéletesen ugyanaz, mint a fentebbi példa.
dep.pl /bin -qrR
Az így hívott dep.pl ugyanazt az eredményt
fogja produkálni, mint a dep.pl /bin -R
parancs.
dep.pl /bin -S=off
Ezt érdemes kipróbálni! A -S egy érdekes opció. Ebben az esetben a program fejlécén kívül semmi kimenetet nem fogunk kapni.
dep.pl /bin -S=off -s
Na, ez már jó valamire. Minden üzenetet elrejt, csak a végén ad némi statisztikát.
dep.pl /bin -s=1 -lR
Ez az én kedvencem! Nem túl részletes a jelentés, és a végén még megkapom a jelenlegi legrészletesebb statisztikát.
dep.pl /home/virtual/host1 -lR
E parancs végnézi az összes file-t a /home/virtual/host1 könyvtáron belül, még azokat is, amelyek kívül esnek rajta. Ez a kívülesés úgy érhetô el, hogy egy bent lévô szimbolikus link a könyvtáron kívülre mutat.
dep.pl /home/virtual/host1 -lR -x=/home/virtual/host1/proc
Ugyanaz, mint az elôbbi példa, de kihagy minden file-t a /home/virtual/host1/proc könyvtáron belül. Nagyon hasznos, ha olyan könyvtárat nézünk végig, ahonnan a proc filerendszert nem tudjuk - vagy nem akarjuk - kiszedni a futás idejére.
dep.pl /home/virtual/host1 -lR -x=/home/virtual/host1/proc -c=/home/virtual/host1
Mint az elôzô példa, azzal a különbséggel, hogy kihagy minden olyan file-t, ami a /home/virtual/host1 könyvtáron kívül van, vagy azon kívülre mutat. A kimenetet édemes egy file-ba irányítani, hogy a rossz helyre mutató szimbolikus linkeket javítani tudjuk.
dep.pl /home/virtual/host1 -lRn -x=/home/virtual/host1/proc -c=/home/virtual/host1 &>output &
Akár az elôzô példa, azzal az apró különbséggel, hogy minden kimenet az output file-ba kerül, a program a háttérben fog futni, és mivel a HUP szignált észre sem veszi, nem fogja zavarni, ha futás közben kijelentkezünk.