Програмне Забезпечення

Використання команди ldd у Linux

Автор: Lewis Jackson
Дата Створення: 7 Травень 2021
Дата Оновлення: 14 Травень 2024
Anonim
Основы работы в командной строке Linux
Відеоролик: Основы работы в командной строке Linux

Зміст

Знайдіть бібліотеки програм, якими користуються ваші програми

Використовувати ldd команда для показу спільних бібліотек, необхідних будь-якій програмі. Команда ldd корисна для відпрацювання, коли існує відсутність залежності. Команда також містить список відсутніх функцій та об'єктів.

Синтаксис команд ldd

Дотримуйтесь належного синтаксису команди ldd, щоб уникнути помилок:

ldd [ОПЦІЯ] ... ФАЙЛ ...

Скористайтеся одним або кількома доступними командними перемикачами ldd, вставленими у місце [OPTION] у вищевказаній команді:

  • --help: Роздрукуйте цю довідку та вийдіть.
  • --версія: друк інформації про версію та вихід.
  • -d, --data-relocs: обробка даних переселення.
  • -r, --function-relocs: Обробляти дані та переміщувати функції.
  • -u, - невикористовується: друкуйте невикористані прямі залежності.
  • -v, --verbose: Роздрукувати всю інформацію.

Як користуватися командою ldd

Виконайте таку команду, щоб отримати додаткову інформацію про програму:


ldd -v / шлях / до / програми / виконується

Вихідні дані показують інформацію про версії, а також шляхи та адреси до бібліотек, що поділяються, таким чином:

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 шлях / до / програма

Вихід аналогічний наступному:

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)


Ніколи не запускайте команду ldd проти ненадійної програми, оскільки команда ldd може її виконати. Натомість використовуйте більш безпечну альтернативу, яка показує лише прямі залежності, а не все дерево залежностей:

objdump -p / шлях / до / програми | grep ПОТРІБНА

Як знайти шлях до програми

Вам потрібно надати повний шлях до програми, якщо ви хочете знайти його залежності за допомогою ldd, що ви можете зробити декількома способами.

Наприклад, ось як знайти шлях до Firefox:

знайти / -імен Firefox

Проблема команди find, однак, полягає в тому, що вона містить список виконуваних файлів і всюди, де знаходиться Firefox, як це:


/etc/skel/.mozilla/firefox
/ home // кеш / mozilla / firefox
/home//.mozilla/firefox
/ usr / bin / Firefox
/ usr / lib / Firefox
/ usr / lib / Firefox / Firefox

Такий підхід є дещо зайвим, і вам може знадобитися використовувати команду sudo, щоб підвищити свої привілеї, інакше ви, ймовірно, отримаєте помилки, позбавлені дозволу людиною.

Натомість простіше використовувати команду thatis, щоб знайти шлях програми:

де firefox

Цього разу вихід може виглядати приблизно так:

/ usr / bin / firefox
/ тощо / 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 - це ім'я бібліотеки, а шістнадцятковий номер - це адреса, куди бібліотека завантажується в пам'ять.

У багатьох рядках => символ слідує шляхом. Це шлях до фізичного бінарного. Шістнадцятковий номер - це адреса, де завантажується бібліотека.

Цікавий

Наша Порада

Що таке Amacho Echo Buds і як вони працюють?
Життя

Що таке Amacho Echo Buds і як вони працюють?

Вони використовують з'єднання Wi-Fi або мобільні дані для підключення та інших функцій. Ви можете використовувати ваші Echo Bud для прослуховування музики, аудіокниг та інших розваг, а також здій...
Як показати або приховати приховані файли та папки
Програмне Забезпечення

Як показати або приховати приховані файли та папки

Приховані файли, як правило, приховуються з поважних причин - вони часто є дуже важливими файлами, а приховування від перегляду ускладнює їх зміну або видалення. Але що робити, якщо ви хочете побачит...