Как узнать зависимости для программы (какие библиотеки или модули использует программа) |
|
Добавил(а) microsin
|
Процесс покажу на примере программы ls - мне её понадобилось вместе с библиотеками скопировать в каталог ~ftp/bin при организации анонимного доступа к ftp-серверу (см. статью Установка анонимного FTP сервера ftpd).
1. Сначала узнаем, где на диске лежит наша программа. Иногда можно воспользоваться locate, но в случае с ls это неудобно - выводится слишком большой список. Поэтому используем find:
# find / -name ls
/bin/ls
/usr/share/locale/l10n/ls
/root/temp/gcc-4.3.0/libjava/org/w3c/dom/ls
/root/temp/gcc-4.3.0/libjava/classpath/lib/org/w3c/dom/ls
/root/temp/gcc-4.3.0/libjava/classpath/lib/gnu/xml/dom/ls
/root/temp/gcc-4.3.0/libjava/classpath/external/w3c_dom/org/w3c/dom/ls
/root/temp/gcc-4.3.0/libjava/classpath/gnu/xml/dom/ls
/root/temp/gcc-4.3.0/libjava/gnu/xml/dom/ls
Отсюда понятно, что тело программы ls находится в папке /bin.
2. Узнаем, какие используются библиотеки для программы ls, и где они находятся. Для этого используем утилиту ldd:
# ldd /bin/ls
librt.so.1 => /lib/tls/librt.so.1 (0x00bbc000)
libacl.so.1 => /lib/libacl.so.1 (0x003b1000)
libselinux.so.1 => /lib/libselinux.so.1 (0x00518000)
libc.so.6 => /lib/tls/libc.so.6 (0x00284000)
libpthread.so.0 => /lib/tls/libpthread.so.0 (0x004e7000)
/lib/ld-linux.so.2 (0x00266000)
libattr.so.1 => /lib/libattr.so.1 (0x005b7000)
|
Комментарии
RSS лента комментариев этой записи