- Подписка на печатную версию:
- Подписка на электронную версию:
- Подшивки старых номеров журнала (печатные версии)
LXF130:Совет месяца
Материал из Linuxformat.
Совет месяца: Двоичная магия
Исполняемые файлы (иными словами, программы, состоящие из двоичного кода), могут выглядеть магией для непосвященных, но в Linux есть несколько инструментов командной строки, позволяющих пролить свет на их суть. Первая из них, file, сообщает общую информацию. Например, набрав file /usr/bin/gedit, вы увидите
/usr/bin/gedit: ELF 32bit 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.