Журнал LinuxFormat - перейти на главную

LXF130:Совет месяца

Материал из Linuxformat
Перейти к: навигация, поиск

Совет месяца: Двоичная магия

Исполняемые файлы (иными словами, программы, состоящие из двоичного кода), могут выглядеть магией для непосвященных, но в Linux есть несколько инструментов командной строки, позволяющих про­лить свет на их суть. Первая из них, file, сообщает общую информацию. Например, набрав file /usr/bin/gedit, вы увидите

/usr/bin/gedit: ELF 32­bit LSB executable,
Intel 80386, version 1 (SYSV), dynamically
linked (uses shared libs), for GNU/Linux
2.6.15, stripped

Здесь указана платформа, для которой скомпили­рован исполняемый файл, а так же отмечено, что он использует разделяемые библиотеки. Если file сооб­щает, что интересующая вас программа скомпонована статически (statically linked), значит, все необходимое уже включено в исполняемый образ, и (теоретически) он должен работать, где угодно. Программы с динамической компоновкой (например, наш Gedit) ожи­дают найти требуемые библиотеки в определенных местах файловой системы, перечисленных в /etc/ld.so.conf. Узнать, какие динамические библиотеки используются программой, позволит ldd:

ldd /usr/bin/gedit

Вы получите список (в данном случае – достаточно длинный) библиотек, требуемых Gedit, и соответст­вующих им конкретных файлов в вашей системе. Узнать подробности можно в man ldd.

Персональные инструменты
купить
подписаться
Яндекс.Метрика