Сайт | Скачать | Видео | Wiki

Автор Тема: Ошибка при подключении библиотек  (Прочитано 3942 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн vadim

  • Постоялец
  • ***
  • Сообщений: 104
  • Репутация: +21/-0
  • Автор темы
Ошибка при подключении библиотек
« : 16 Август 2013, 01:26:24 »
Столкнулся с такой шибкой.
Собрал из deb-пакетов игрушку mahjongg. После установки не запустилась. В терминале выдало, что нет библиотеки libEGL.so.1.
Проверил в системе. Библиотека нашлась в каталоге /usr/X11R7/lib. При помощи опытов определил, что библиотеки (или ссылки на них)
подключаются только из каталогов /lib или /usr/lib. В этом случае игра нормально запускается и работает.
В переменной LD_LIBRARY_PATH  следующее:
LD_LIBRARY_PATH=/lib:/usr/lib:/usr/X11R7/lib:/root/my-applications/lib:/opt/samba/lib,
т.е. путь /usr/X11R7/lib есть, а результата работы нет.
Проверил в PR216, там все работает нормально.
Desktop i5 750, P7P55D-E EVO
Xenialpup64 7.5

Оффлайн Pro

  • Модератор
  • Ветеран
  • ****
  • Сообщений: 10737
  • Репутация: +113/-2
Re:Ошибка при подключении библиотек
« Ответ #1 : 16 Август 2013, 02:14:34 »
если бы библиотеки из /usr/X11R7/lib не подхватывались, у вас бы не запустился xorg.

вполне возможно что проблема в самом mahjongg, может у него есть файл параметров в котором прописано где чего искать.
Я загружаю новые пакеты сюда: http://file.puppyrus.org/users/ а дальше можно найти самостоятельно.

Оффлайн ilyuk

  • Пользователь
  • **
  • Сообщений: 42
  • Репутация: +19/-0
Re:Ошибка при подключении библиотек
« Ответ #2 : 18 Август 2013, 20:14:16 »
О недавно установленной библиотеке система "узнает" либо после перезагрузки либо после команды ldconfig

Оффлайн dim-kut

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 1021
  • Репутация: +41/-0
Re:Ошибка при подключении библиотек
« Ответ #3 : 18 Август 2013, 23:02:14 »
При компиляции часто встречается ошибка, что библиотеки из /usr/X11R7/lib не видны для configure. Нестандартное расположение библиотек приводит к проблемам. Настроить мне не удавалось. Решается созданием ссылок на них в /lib или /usr/lib или просто копированием на время компиляции.
Engineering is the art of making what you want from things you can get.

Оффлайн vadim

  • Постоялец
  • ***
  • Сообщений: 104
  • Репутация: +21/-0
  • Автор темы
Re:Ошибка при подключении библиотек
« Ответ #4 : 19 Август 2013, 16:19:02 »
Спасибо ilyuk за подсказку. Почитал man по ldconfig, поэксперементировал, и разобрался с проблемой
подключения библиотек из каталогов отличных от /lib и /usr/lib.
Что бы библиотеки подключались не из доверенных каталогов /lib и /usr/lib:
1 -эти каталоги должны быть прописаны в /etc/ld.so.conf (у нас они там прописаны);
2 -при помощи утилиты ldconfig библиотеки из этих каталогов заносятся в файл кеша /etc/ld.so.cache и после этого подхватываются системой.
   У нас утилиты ldconfig в системе нет (я для опытов взял из убунты), а файл кеша библиотек /etc/ld.so.cache не создается после загрузки всех пакетов системы, а устанавливается какой-то старый (2009 года) в пакете 0rootfs-skeleton.
   Предлагаю внести в систему утилиту ldconfig и прописать где то в скриптах инициализации системы (после загрузки всех пакетов) обновление файла кеша библиотек  /etc/ld.so.cache.

P.s. Кстати это болезнь всех последних линеек puppy, которые мне попадались. В PuppyPrecise все библитеки вообще снесли в доверенные каталоги /lib и /usr/lib.
Desktop i5 750, P7P55D-E EVO
Xenialpup64 7.5