Я столкнулся с этой проблемой несколько раз. У меня есть программа, которая ищет библиотеку и не может ее найти, хотя она есть в /usr/lib/x86_64-linux-gnu
.
Возможно, это недостаток в том, как была написана зависимая программа. Я не знаю много об этом, но я ожидал бы, что зависимая программа укажет имя библиотеки и позволит системе искать список путей.
Кто-нибудь может вкратце объяснить, как Ubuntu ожидает, что программа с правильным поведением будет искать динамические библиотеки?
В качестве конкретного примера, последний случай касается библиотеки libpcsclite.so
. Документация Oracle предполагает, что Java (зависимая программа) будет выглядеть в /usr/lib64
и /usr/local/lib64
в моей системе - ни одна из которых не существует. У меня были подобные проблемы в прошлом с не-Java зависимыми. Отчасти мой вопрос заключается в том, почему программа перечисляет такие места поиска? Есть ли механизм поиска, предоставляемый Linux, который следует использовать вместо этого?
Это проблема с Java, которую нужно исправить с помощью системного свойства sun.security.smartcardio.library
, или pcsclite
не поддерживает мульти Соглашения об именах архитектуры правильно? Если последнее, я должен создавать символические ссылки вручную, или это что-то, что инструмент, как ldconfig
должен исправить?
Я предполагаю, что проблема в том, что вы устанавливаете пакеты вне apt (apt-get). Либо используйте пакеты Ubuntu (если возможно, ppa), либо, если вы компилируете пакеты, во время компиляции используйте ./configure --help
и укажите путь к библиотеке как часть вашей конфигурации.
См. Также:
http://tldp.org/HOWTO/Program-Library-HOWTO/shared-libraries.html
По второй ссылке:
CFLAGS="-I/path/to/your/headers" LDFLAGS="-L/path/to/your/lib" ./configure --blah
Если вам нужна дополнительная помощь, вам нужно будет более конкретно указать «какую-то программу, которая ищет библиотеку и не может ее найти» - какая программа? Как вы это установили? и т.д.
Чтобы установить среду Java, отредактируйте ~/.pam_environment
, добавьте:
export JAVA_HOME=/usr/java/<your version of java>
export PATH=${PATH}:${JAVA_HOME}/bin
Для всех пользователей (системы) отредактируйте /etc/environment
См. Также: https: / /help.ubuntu.com/community/EnvironmentVariables#Persistent_environment_variables