Skip to main content

Temukan Perpustakaan Bersama Program dengan Perintah "ldd"

Cara Mengetik Di Word Dengan Menggunakan perintah Suara (Juni 2026)

Cara Mengetik Di Word Dengan Menggunakan perintah Suara (Juni 2026)
Anonim

Menggunakan ldd perintah untuk menampilkan pustaka bersama yang diperlukan oleh program apa pun - berguna untuk bekerja ketika ada ketergantungan yang hilang. Perintah juga mencantumkan fungsi dan objek yang hilang.

Perintah sintaks ldd

Amati sintaks yang tepat untuk perintah ldd untuk menghindari kesalahan:

ldd OPTION … FILE …

Gunakan satu atau lebih dari switch perintah ldd yang tersedia, dimasukkan ke dalam PILIHAN tempat di perintah di atas:

- membantu | cetak bantuan ini dan keluar --version | cetak informasi versi dan keluar -d, --data-relocs | proses relokasi data -r, --function-relocs | data proses dan relokasi fungsi -u, --unused | mencetak ketergantungan langsung yang tidak digunakan -v, --verbose | cetak semua informasi

Cara Menggunakan Perintah ldd

Jalankan perintah berikut untuk mendapatkan informasi lebih lanjut tentang program:

$ ldd -v / path / ke / program / dieksekusi

Output menampilkan informasi versi serta jalur dan alamat ke pustaka bersama, seperti ini:

$ ldd libshared.so linux-vdso.so.1 => (0x00007fff26ac8000) libc.so.6 => /lib/libc.so.6 0x00007ff1df55a000) /lib64/ld-linux-x86-64.so.2 (0x00007ff1dfafe000)

Jika file SO tidak ada sama sekali, Anda dapat menemukan perpustakaan yang hilang menggunakan perintah berikut:

$ ldd -d path / ke / program

Outputnya mirip dengan yang berikut:

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

Jangan menjalankan perintah ldd terhadap program yang tidak dipercaya karena ldd mungkin benar-benar mengeksekusinya. Sebaliknya, gunakan alternatif yang lebih aman yang menunjukkan hanya ketergantungan langsung dan bukan seluruh pohon ketergantungan:

$ objdump -p / path / ke / program | grep DIPERLUKAN

Cara Menemukan Jalan Menuju Aplikasi

Anda harus menyediakan jalur lengkap ke aplikasi jika Anda ingin menemukan dependensinya dengan ldd, yang dapat Anda lakukan dengan beberapa cara.

Misalnya, ini adalah bagaimana Anda akan menemukan jalan ke Firefox:

$ find / -name firefox

Masalah dengan perintah find, bagaimanapun, adalah bahwa ia tidak hanya akan menampilkan executable tetapi di mana-mana bahwa Firefox berada, seperti ini:

  • /etc/skel/.mozilla/firefox
  • / home // cache / mozilla / firefox
  • /home//.mozilla/firefox
  • / usr / bin / Firefox
  • / usr / lib / Firefox
  • / usr / lib / Firefox / Firefox

Pendekatan ini sedikit berlebihan dan Anda mungkin perlu menggunakan perintah sudo untuk meningkatkan hak istimewa Anda, jika tidak Anda akan mendapatkan banyak kesalahan yang ditolak izin.

Alih-alih lebih mudah menggunakan perintah whereis untuk menemukan jalur aplikasi:

$ whereis firefox

Kali ini hasilnya mungkin terlihat seperti ini:

/ usr / bin / firefox

/ etc / firefox

/ usr / lib / firefox

Yang harus Anda lakukan sekarang untuk menemukan perpustakaan bersama untuk Firefox adalah ketik perintah berikut:

$ ldd / usr / bin / firefox

Output dari perintah akan menjadi seperti ini:

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 adalah nama pustaka dan nomor hex adalah alamat tempat pustaka akan dimuat ke dalam memori.

Anda akan melihat pada banyak baris lain bahwa simbol => diikuti oleh sebuah jalur. Ini adalah jalan menuju biner fisik; nomor hex adalah alamat tempat perpustakaan akan dimuat.