Программы не находят библиотек для запуска (хотя библиотеки есть)

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС для молодых и начинающих системных администраторов.

Модераторы: SLEDopit, Модераторы разделов

156
Сообщения: 234
ОС: OPENSUSE ALTLINUX

Программы не находят библиотек для запуска

Сообщение 156 »

Запускаю программу, пишет что не находит библиотеу, проверяю наличие библиотеки, она есть, дописываю путь к ней в переменную PATH , проверяю появление пути к библиотеке, проверяю наличие библиотеки, запускаю программу - опять пишет , что нет такой библиотеки. Такое замечено на несколькоих программах, когда не находятся файлы, имеющиеся в наличии в системых каталогах. Прогу запускал под рутом, поэтому проблемы с правами доступа отпадают.
Вопрос - что сделать, чтобы программа увидела нужную ей библиотеку? Лог приводится ниже.

linux-cwod:/home/serg/del # ./unetbootin-linux-549
./unetbootin-linux-549: error while loading shared libraries: libpng12.so.0: cannot open shared object file: No such file or directory
linux-cwod:/home/serg/del # echo $PATH
/usr/lib64/mpi/gcc/openmpi/bin:/home/serg/bin:/usr/local/bin:/usr/bin:/sbin:/usr/sbin:/bin:/usr/bin/X11:/usr/X11R6/bin:/usr/games:/opt/kde3/bin:/usr/lib/mit/bin:/usr/lib/mit/sbin
linux-cwod:/home/serg/del # PATH=$PATH:/usr/lib64
linux-cwod:/home/serg/del # echo $PATH
/usr/lib64/mpi/gcc/openmpi/bin:/home/serg/bin:/usr/local/bin:/usr/bin:/sbin:/usr/sbin:/bin:/usr/bin/X11:/usr/X11R6/bin:/usr/games:/opt/kde3/bin:/usr/lib/mit/bin:/usr/lib/mit/sbin:/usr/lib64
linux-cwod:/home/serg/del # ./unetbootin-linux-549
./unetbootin-linux-549: error while loading shared libraries: libpng12.so.0: cannot open shared object file: No such file or directory
linux-cwod:/home/serg/del # ls -l /usr/lib64/ | grep libpng
lrwxrwxrwx 1 root root 18 Июл 15 11:17 libpng12.so -> libpng12.so.0.44.0
lrwxrwxrwx 1 root root 18 Июл 14 22:29 libpng12.so.0 -> libpng12.so.0.44.0
-rwxr-xr-x 1 root root 171112 Фев 19 00:25 libpng12.so.0.44.0
lrwxrwxrwx 1 root root 18 Июл 14 22:35 libpng14.so -> libpng14.so.14.4.0
lrwxrwxrwx 1 root root 18 Мар 2 14:43 libpng14.so.14 -> libpng14.so.14.4.0
-rwxr-xr-x 1 root root 170984 Фев 19 00:23 libpng14.so.14.4.0
lrwxrwxrwx 1 root root 11 Июл 14 22:41 libpng.so -> libpng14.so
linux-cwod:/home/serg/del #
Спасибо сказали:
watashiwa_daredeska
Бывший модератор
Сообщения: 4038
Статус: Искусственный интеллект (pre-alpha)
ОС: Debian GNU/Linux

Re: Программы не находят библиотек для запуска

Сообщение watashiwa_daredeska »

156 писал(а):
15.07.2011 11:33
проверяю наличие библиотеки, она есть, дописываю путь к ней в переменную PATH
PATH не влияет на поиск библиотек. За библиотеки отвечает LIBRARY_PATH.

156 писал(а):
15.07.2011 11:33
имеющиеся в наличии в системых каталогах.
Если библиотеки в системных каталогах, то и пути должны быть сообщены системному ld.so, чтобы не мучаться с LIBRARY_PATH каждый раз. Пути (те же самые, что в LIBRARY_PATH) прописываются в /etc/ld.so.conf (или создается файл в /etc/ld.so.conf.d/), потом запускается ldconfig, чтобы обновить кэш библиотек.
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: Программы не находят библиотек для запуска

Сообщение sash-kan »

156
$ file ./unetbootin-linux-549 | grep -o ...bit
?
$ file /usr/lib64/libpng12.so.0.44.0 | grep -o ...bit
?
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
156
Сообщения: 234
ОС: OPENSUSE ALTLINUX

Re: Программы не находят библиотек для запуска

Сообщение 156 »

вот /etc/ld.so.conf :

/usr/X11R6/lib64/Xaw3d
/usr/X11R6/lib64
/usr/lib64/Xaw3d
/usr/X11R6/lib/Xaw3d
/usr/X11R6/lib
/usr/lib/Xaw3d
/usr/x86_64-suse-linux/lib
/usr/local/lib
/opt/kde3/lib
/lib64
/lib
/usr/lib64
/usr/lib
/usr/local/lib64
/opt/kde3/lib64
include /etc/ld.so.conf.d/*.conf

Как видно из файла, путь поиска до библиотеки есть, но она не находится.


linux-cwod:/home/serg # file ./unetbootin-linux-549 | grep -o ...bit
32-bit
linux-cwod:/home/serg # file /usr/lib64/libpng12.so.0.44.0 | grep -o ...bit
64-bit
linux-cwod:/home/serg #
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21359
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Программы не находят библиотек для запуска

Сообщение Bizdelnick »

Давайте начнём с начала: откуда у Вас эта программа? Вы собирали её сами, скачали архив с бинарниками или ещё что-то?
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: Программы не находят библиотек для запуска

Сообщение sash-kan »

156 писал(а):
15.07.2011 21:56
linux-cwod:/home/serg # file ./unetbootin-linux-549 | grep -o ...bit
32-bit
linux-cwod:/home/serg # file /usr/lib64/libpng12.so.0.44.0 | grep -o ...bit
64-bit
linux-cwod:/home/serg #
расшифровка, видимо, требуется·
программа 32-битная, а библитотека — 64-х·
вот загрузчик её (библиотеку) и «не находит»·
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
156
Сообщения: 234
ОС: OPENSUSE ALTLINUX

Re: Программы не находят библиотек для запуска

Сообщение 156 »

sash-kan писал(а):
16.07.2011 02:06
156 писал(а):
15.07.2011 21:56
linux-cwod:/home/serg # file ./unetbootin-linux-549 | grep -o ...bit
32-bit
linux-cwod:/home/serg # file /usr/lib64/libpng12.so.0.44.0 | grep -o ...bit
64-bit
linux-cwod:/home/serg #
расшифровка, видимо, требуется·
программа 32-битная, а библитотека — 64-х·
вот загрузчик её (библиотеку) и «не находит»·

При всём уважении к модератору, считаю,что прога обращается к файлу по имени, а не к его битности, 32 или 64. Или я сильно заблуждаюсь?

Прогу нашёл в инете, http://unetbootin.sourceforge.net/ это создатель загрузочных флэшек под различные системы, всего более десятка систем.

И ещё - переменая LIBRARY_PATH полностью пустая, хотя список директорий в указанном в ответе файлов есть.
linux-cwod:/home/serg # echo $LIBRARY_PATH

linux-cwod:/home/serg #
Спасибо сказали:
NickLion
Сообщения: 3408
Статус: аватар-невидимка
ОС: openSUSE Tumbleweed x86_64

Re: Программы не находят библиотек для запуска

Сообщение NickLion »

1. LD_LIBRARY_PATH
2. 32-х битное приложение не может использовать 64-х битную библиотеку (кроме особых ухищрений, которые никому не нужны)
3. man ldd
Спасибо сказали:
156
Сообщения: 234
ОС: OPENSUSE ALTLINUX

Re: Программы не находят библиотек для запуска

Сообщение 156 »

linux-cwod:/home/serg # echo $LD_LIBRARY_PATH

linux-cwod:/home/serg #

А вот что пишут в инете по поводу 32 битных приложений и 64 битных библиотек

Если вы используете 64-х битную систему Linux, тогда часто могут возникать ситуации, когда какое-нибудь приложение отказывается запускаться, выдавая ошибку.В частности при попытке выполнить в командной строке файл, предназначенный для 32-х битной системы, может возникать ошибка вида:./somefile: Нет такого файла или каталога (No such file or directory)
Чтобы 32-х битные приложения могли запускаться в 64-х битной системе Linux нужно установить соответствующие библиотеки (в Ubuntu пакет, который содержит эти библиотеки, называется ia32-libs). Для их установки выполните команду:
sudo apt-get install ia32-libs
Данное решение не является рецептом от всех проблем, связанных с запуском 32-х разрядных программ в 64-х битной системе Linux. Некоторые приложения по прежнему не будут запускаться, а некоторым могут потребоваться и еще какие-нибудь дополнительные 32-х битные библиотеки. Но для многих случаев установка ia32-libs в Debian based Linux системах значительно помогает.
Спасибо сказали:
NickLion
Сообщения: 3408
Статус: аватар-невидимка
ОС: openSUSE Tumbleweed x86_64

Re: Программы не находят библиотек для запуска

Сообщение NickLion »

Ну, всё верно - для 32-х битного приложения нужны 32-х битные библиотеки. Об этом и говорится. Этот пакет не даёт магической мощи 32-х битному приложению использовать 64-х битные библиотеки, а просто содержит 32-х битные либки.

LD_LIBRARY_PATH пусто - значит нет дополнительных путей, в чём проблема?
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: Программы не находят библиотек для запуска

Сообщение sash-kan »

156
неужели в репозитории вашего дистрибутива нет такой достаточно популярной программы, как unetbootin?
в репозитории opensuse — вижу, в репозитории alt linux — вижу·
у вас сейчас под рукой что-то более экзотическое?

установка из репозитория никак могла бы вызвать озвученной в топике проблемы — была бы установлена именоо 64-битная сборка программы·
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
156
Сообщения: 234
ОС: OPENSUSE ALTLINUX

Re: Программы не находят библиотек для запуска

Сообщение 156 »

sash-kan писал(а):
18.07.2011 01:47
156
неужели в репозитории вашего дистрибутива нет такой достаточно популярной программы, как unetbootin?
в репозитории opensuse — вижу, в репозитории alt linux — вижу·
у вас сейчас под рукой что-то более экзотическое?

установка из репозитория никак могла бы вызвать озвученной в топике проблемы — была бы установлена именоо 64-битная сборка программы·

Вы подсказали решение проблемы другим путём, установкой из репозитария. Согласен, что проблема установки решена, Топик был создан по причине ненахождения библиотек при их наличии. Я не знал, что 32 битная прога не может использовать 64 библиотеки, хоть они и называются как 32х битные, так как предполагал, что обращение к файлу идет по его имени , а не битности, в этом я шибался. Благо_дарю всем , кто нашел время и желание ответить.
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: Программы не находят библиотек для запуска

Сообщение sash-kan »

156 писал(а):
19.07.2011 14:48
обращение к файлу идет по его имени , а не битности
по имени, по имени·
загрузчик, пытаясь разрезолвить ссылки на внешние библиотеки, не находит библиотеку подходящей сборки, и выдаёт сообщение: «библиотека не найдена»·
а грузить elf, собранный для 64-битной системы в адресное пространство elf-а, собранного для 32-битной, он, слава богу, не пытается· ничего хорошего из этого всё равно не выйдет — ни одной функции вызвать не удастся·
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали: