debian 9 + odbc + mariadb: [01000] не удается открыть lib, файл не найден
Я устанавливаю, что:
sudo apt-get install unixodbc unixodbc-dev
Я скачать версию MariaDB-разъем-для ODBC-3.0.2-га-дебиан-архитектуру x86_64.смола.gz отсюда https://downloads.mariadb.com/Connectors/odbc/connector-odbc-3.0.2/ и копировать libmaodbc.so из архива в /usr / lib/x86_64-linux-gnu / odbc /
Далее я настраиваю odbcinst.ini:
[MariaDB]
Description=MariaDB
Driver=/usr/lib/x86_64-linux-gnu/odbc/libmaodbc.so
Setup=/usr/lib/x86_64-linux-gnu/odbc/libmaodbc.so
FileUsage=1
И следующий odbc.ini:
[ast-con]
Description = MariaDB connection to 'asterisk' database
Driver = MariaODBC
Database = AsteriskDB
Server = localhost
UserName = zk
Password = rt131cvn
Port = 3306
Socket = /var/run/mysqld/mysqld.sock
Команда:
root@asterisk:/etc# odbcinst -q -d
[MariaODBC]
Далее я пытаюсь проверить odbc с isql:
root@asterisk:/etc# isql -v ast-con
[01000][unixODBC][Driver Manager]Can't open lib '/usr/lib/x86_64-linux-gnu/odbc/libmaodbc.so # latest stable from https://downloads.mariadb.org/connector-odbc/+releases/' : file not found
[ISQL]ERROR: Could not SQLConnect
Я пытаюсь искать в google и нахожу 1 решение, но оно не помогает:
Я устанавливаю LD_LIBRARY_PATH
root@asterisk:/etc# env
LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu/odbc
SSH_CONNECTION=xx.xxx.xxx.xxx 64759 xx.xxx.xxx.xx 22
OLDPWD=/root
XDG_SESSION_ID=26153
USER=root
PWD=/etc
HOME=/root
SSH_CLIENT=xx.xxx.xxx.xxx 64759 22
SSH_TTY=/dev/pts/0
MAIL=/var/mail/root
TERM=xterm
SHELL=/bin/bash
SHLVL=1
LOGNAME=root
XDG_RUNTIME_DIR=/run/user/0
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
_=/usr/bin/env
Следующая команда:
root@asterisk:/etc# ldd /usr/lib/x86_64-linux-gnu/odbc/libmaodbc.so
linux-vdso.so.1 (0x00007fffad26f000)
libodbcinst.so.2 => /usr/lib/x86_64-linux-gnu/libodbcinst.so.2 (0x00007f5ad171d000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f5ad1419000)
libssl.so.1.0.0 => not found
libcrypto.so.1.0.0 => not found
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f5ad107a000)
libltdl.so.7 => /usr/lib/x86_64-linux-gnu/libltdl.so.7 (0x00007f5ad0e6e000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f5ad0c51000)
/lib64/ld-linux-x86-64.so.2 (0x00007f5ad1be9000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f5ad0a4d000)
, как правило, есть libodbcinst.так.1 => не обнаружил, а затем exec что-то вроде этого: ЛН-ы libodbcinst.так.1 libodbcinst.так.2.0.0
Но результат у меня другой, и я никак не могу понять, что же мне делать ? Помогите, пожалуйста!3 ответа:
Это очень раздражает, и я сузил его до нескольких вещей:
Если вы будете следовать инструкциям, Debian будет установка libssl-dev для вас, однако libmaodbc.так это связано с libssl.так.1.0.0 и libcrypto.так.1.0.0 -- поэтому он будет сталкиваться ENOENT (нет такого файла или каталога), когда пытаюсь найти эти два .так, следовательно, выбрасывая "файл не найден" ошибка (делаю трассированием на команду будет предоставлять вам информацию, что он нашел libmaodbc.так что файл, но не два других файла)
Даже если вам удастся получить libssl1. 0-dev, он удалит другие пакеты, необходимые для FreePBX / Asterisk.
Даже тогда, он все равно потерпит неудачу. libc.mo поиск локалей en_US
Решение этой проблемы заключается в том, чтобы найти другое libmaodbc.so это правильно связано с libssl1. 1