Linux: запуск приложения с определёнными библиотеками

Linux: запуск приложения с определёнными библиотеками

В этой статье я поделюсь с Вами информацией о том, как запустить приложение с определёнными библиотеками.

Зачем это нужно?

Предположим у Вас имеется приложение, которое было скомпилировано под Ubuntu 12.04, а Вам необходимо запустить его на Debian Squeeze.

При запуске, Вы можете видеть разные сообщения, например, вот это:

MyApplication: /lib/libc.so.6: version `GLIBC_2.15′ not found (required by ./MyApplication)

Которое говорят о том, что нет необходимых библиотек для работы приложения.

Получить список библиотек, которые необходимы для работы приложения можно при помощи команды ldd:

$ ldd MyApplication
libm.so.6 (GLIBC_2.2.5) => /lib/libm.so.6
libc.so.6 (GLIBC_2.3.4) => /lib/libc.so.6
libc.so.6 (GLIBC_2.4) => /lib/libc.so.6
libc.so.6 (GLIBC_2.15) => not found
libc.so.6 (GLIBC_2.2.5) => /lib/libc.so.6

Как видим, не хватает только libc.so.6 (GLIBC_2.15).

Как исправить?

В данном случае скачиваем libc6 и libc6-dev из Ubuntu 12.04 LTS

При помощи команды dpkg извлекаем содержимое deb пакетов в папку (/home/user/libs/, например):

$ dpkg -x libc6-dev_2.15-0ubuntu10.6_amd64.deb /home/user/libs/
$ dpkg -x libc6_2.15-0ubuntu10.6_amd64.deb /home/user/libs/

И запускаем приложение, указав путь к библиотекам при помощи LD_LIBRARY_PATH:

$ LD_LIBRARY_PATH=/home/user/libs/lib/x86_64-linux-gnu/ MyApplication

Если все необходимые библиотеки присутствуют — приложение запустится.

Stas Kuryan

Web developer. Перфекционист в написании кода.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *