Ldd ბრძანება შეიძლება გამოყენებულ იქნას, რათა გაჩვენოთ გაზიარებული ბიბლიოთეკები, რომლებიც საჭიროა ნებისმიერი პროგრამით.
ეს სასარგებლოა, როდესაც არსებობს დაკარგული დამოკიდებულება და შეიძლება გამოყენებულ იქნას დაკარგული ფუნქციებისა და ობიექტების სიაში.
ldd Command სინტაქსი
ეს არის სათანადო სინტაქსი, როდესაც გამოიყენება ldd ბრძანება:
ldd [OPTION] ... ფაილი ...აქ არის შესაძლებელი ldd ბრძანება კონცენტრატორები, რომელიც შეიძლება ჩასმული შევიდა [OPTION] ადგილზე ზემოთ ბრძანება:
--help ბეჭდვა ეს დახმარება და გასვლა - ვერსიის ბეჭდვითი ვერსია ინფორმაცია და გასასვლელი - data-relocs პროცესის მონაცემების გადანაწილება -r, - ფუნქცია-გადადიხართ პროცესის მონაცემები და ფუნქცია გადაადგილების -u, --unused ბეჭდვითი გამოუყენებელი პირდაპირი dependencies -v, --verbose ბეჭდვა ყველა ინფორმაციაროგორ გამოვიყენოთ ld ბრძანება
თქვენ შეგიძლიათ გამოიყენოთ შემდეგი ბრძანება დამატებითი ინფორმაცია ნებისმიერი ldd ბრძანებისგან:
ldd -v / path / to / program / executableგამომუშავება გვიჩვენებს ვერსია ინფორმაციას, ისევე როგორც ბილიკები და მისამართები საერთო ბიბლიოთეკებს, როგორიცაა:
ldd libshared.so linux-vdso.so.1 => (0x00007fff26ac8000) libc.so.6 => /lib/libc.so.6 0x00007ff1df55a000) /lib64/ld-linux-x86-64.so.2 (0x00007ff1dfafe000)თუ SO ფაილი საერთოდ არ არსებობს, შეგიძლიათ იპოვოთ დაკარგული ბიბლიოთეკები შემდეგი ბრძანების გამოყენებით:
ldd -d path / to / პროგრამაგამონაკლისი ასეთია:
linux-vdso.so.1 (0x00007ffc2936b000) /home/gary/demo/garylib.so => not foundlibc.so.6 => usr / lib / libc.so.6 (0x00007fd0c6259000) / lib64 / ld-linux-x86 -64.so.2 (0x00007fd0c65fd000)მნიშვნელოვანია: არასდროს არ აწარმოებს დაუყონებლივ ბრძანებას დაუსაბუთებელ პროგრამას, რადგან ბრძანება მართლაც შეასრულებს მას. ეს არის უსაფრთხო ალტერნატივა, რომელიც აჩვენებს პირდაპირ დამოკიდებულებას და არა მთელ დამოკიდებულებას: objdump -p / path / to / program | grep საჭიროა .
როგორ მოვძებნოთ გზა განაცხადისთვის
თქვენ უნდა მიაწოდოთ სრული გზავნილის პროგრამა, თუ გსურთ მისი დამოკიდებულებების პოვნა ldd- სთან ერთად, რომელიც შეგიძლიათ გააკეთოთ რიგი გზები.
მაგალითად, ეს არის ის, თუ როგორ გსურთ იპოვოთ გზა Firefox- ზე :
მოვძებნოთ / -name firefoxპრობლემა ბრძანებასთან ერთად არის ის, რომ ის არა მარტო შეასრულებს შესრულებას, არამედ ყველგან, რომ Firefox მდებარეობს, ისევე როგორც:
- /etc/skel/.mozilla/firefox
- / home / cache / mozilla / firefox
- /home//.mozilla/firefox
- / usr / bin / Firefox
- / usr / lib / Firefox
- / usr / lib / Firefox / Firefox
ეს მიდგომა ოდნავ ზედმეტია და შესაძლოა საჭიროა გამოიყენოთ სუუდი ბრძანება, რომ შეენარჩუნებინათ თქვენი პრივილეგიები, თქვენ კი სავარაუდოდ მიიღებთ ბევრ ნებართვას უარყოფით შეცდომებს.
ნაცვლად ბევრად უფრო ადვილია გამოიყენოს სად ბრძანება პოვნა აპლიკაციის გზას:
სად არის ცეცხლიამჯერად გამომავალი შეიძლება ასე გამოიყურებოდეს:
/ usr / bin / firefox
/ etc / firefox
/ usr / lib / firefox
ყველაფერი რაც თქვენ ახლა უნდა გააკეთოთ იმისათვის, რომ იხილოთ გაზიარებული ბიბლიოთეკები Firefox- ისთვის არის შემდეგი ბრძანება:
ldd / usr / bin / firefoxგამომავალი ბრძანება იქნება მსგავსი რამ:
linux-vdso.so.1 (0x00007ffff8364000)
libpthread.so.0 => /usr/lib/libpthread.so.0 (0x00007feb9917a000)
libdl.so.2 => /usr/lib/libdl.so.2 (0x00007feb98f76000)
libstdc + + so.6 => /usr/lib/libstdc++.so.6 (0x00007feb98bf4000)
libm.so.6 => /usr/lib/libm.so.6 (0x00007feb988f6000)
libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x00007feb986e0000)
libc.so.6 => /usr/lib/libc.so.6 (0x00007feb9833c000)
/lib64/ld-linux-x86-64.so.2 (0x00007feb99397000)
Linux-vdso.so.1 არის ბიბლიოთეკის დასახელება და hex ნომერი არის მისამართი, სადაც ბიბლიოთეკა ჩაიტვირთება მეხსიერებაში.
თქვენ შეამჩნევთ ბევრ სხვა ხაზს, რომ => სიმბოლო მოჰყვება გზას. ეს არის ფიზიკური ბინარული გზა; hex ნომერი არის მისამართი, სადაც ბიბლიოთეკა დატვირთული იქნება.