ប្រើពាក្យបញ្ជា "ldd" ក្នុងលីនុច

ពាក្យបញ្ជា ldd អាចត្រូវបានប្រើដើម្បីបង្ហាញបណ្ណាល័យដែលបានចែករំលែកដែលទាមទារដោយកម្មវិធីដែលបានផ្តល់ឱ្យ។

វាមានប្រយោជន៍សម្រាប់ធ្វើការចេញនៅពេលមានភាពអាស្រ័យដែលបាត់ហើយអាចត្រូវបានប្រើដើម្បីរាយមុខងារនិងវត្ថុដែលបាត់។

ldd ពាក្យបញ្ជាវាក្យសម្ពន្ធ

នេះជា វាក្យសម្ព័ន្ធ ត្រឹមត្រូវពេលប្រើពាក្យបញ្ជា ldd

ldd [ជម្រើស] ... FILE ...

នេះគឺជាចំណុចបញ្ជាពាក្យបញ្ជា ldd ដែលអាចប្រើបានដែលអាចត្រូវបានបញ្ចូលទៅក្នុង [OPTION] កន្លែងនៅក្នុងពាក្យបញ្ជាខាងលើ:

- ជំនួយបោះពុម្ពជំនួយនេះនិងចេញ - កំណែកំណែបោះពុម្ពកំណែនិងចេញ -d, - data-reloc relogation ទិន្នន័យដំណើរការ -r, - មុខងារដំណើរការ relocations ទិន្នន័យនិងមុខងារ relocations -u, - unused print មិនប្រើភាពអាស្រ័យដោយផ្ទាល់ - v, - verbose បោះពុម្ពព័ត៌មានទាំងអស់

របៀបប្រើពាក្យបញ្ជា ldd

អ្នកអាចប្រើពាក្យបញ្ជាដូចខាងក្រោមដើម្បីទទួលបានព័ត៌មានបន្ថែមពីពាក្យបញ្ជា 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 ផ្លូវ / ទៅ / program

លទ្ធផលគឺស្រដៀងទៅនឹងដូចខាងក្រោម:

linux-vdso.so.1 (0x00007ffc2936b000) /home/gary/demo/garylib.so => ​​not findlibc.so.6 => usr / lib / libc.so.6 (0x00007fd0c6259000) / lib64 / ld-linux-x86 -64.so.2 (0x00007fd0c65fd000)

សំខាន់: កុំរត់ពាក្យបញ្ជា ldd ប្រឆាំងនឹងកម្មវិធីមិនទុកចិត្តព្រោះពាក្យបញ្ជាអាចប្រតិបត្តិវា។ នេះជាជម្រើសដែលមានសុវត្ថិភាពដែលបង្ហាញតែភាពអាស្រ័យផ្ទាល់និងមិនមែនមែកធាងអាណាព្យាបាលទាំងមូល: objdump -p / path / to / program | grep NEEDED

វិធីរកផ្លូវសម្រាប់កម្មវិធី

អ្នកត្រូវផ្តល់ផ្លូវពេញលេញទៅកម្មវិធីប្រសិនបើអ្នកចង់ស្វែងរកភាពអាស្រ័យរបស់វាជាមួយ ldd ដែលអ្នកអាចធ្វើវិធីមួយចំនួន។

ឧទាហរណ៍នេះគឺជារបៀបដែលអ្នកនឹងរកឃើញផ្លូវទៅកាន់ Firefox :

find / -name firefox

បញ្ហាជាមួយនឹង ពាក្យបញ្ជាស្វែងរក ទោះជាយ៉ាងណាក៏ដោយវានឹងមិនត្រឹមតែរាយឈ្មោះដែលអាចប្រតិបត្តិបានប៉ុណ្ណោះទេប៉ុន្តែនៅគ្រប់ទីកន្លែងដែល Firefox មានទីតាំងដូចនេះ:

វិធីសាស្រ្តនេះគឺជាការប៉ះទង្គិចបន្តិចបន្តួចហើយអ្នកប្រហែលជាត្រូវប្រើ ពាក្យបញ្ជា sudo ដើម្បីលើកកម្ពស់សិទ្ធិរបស់អ្នកផ្សេងទៀតអ្នកទំនងជាទទួលបានការអនុញ្ញាតជាច្រើនដែលបានបដិសេធកំហុស។

វាជំនួសឱ្យងាយស្រួលប្រើ ពាក្យបញ្ជា whereis ដើម្បីស្វែងរកផ្លូវរបស់កម្មវិធី:

whereis 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 គឺជាអាស័យដ្ឋានដែលបណ្ណាល័យនឹងត្រូវបានផ្ទុកនៅក្នុងសតិ។

អ្នកនឹងកត់សម្គាល់ឃើញលើបន្ទាត់ផ្សេងទៀតជាច្រើនដែលនិមិត្តសញ្ញា => និមិត្តសញ្ញាតាមផ្លូវ។ នេះជាផ្លូវទៅកាន់ប្រព័ន្ធគោលពីរ; លេខគោលដប់ប្រាំមួយគឺជាអាស័យដ្ឋានដែលបណ្ណាល័យនឹងត្រូវបានផ្ទុក។