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:

Якщо всі необхідні бібліотеки присутні - додаток запуститься.

Схожі статті