RODBC в OpenCPU не может найти зависимые библиотеки
Здесь есть несколько связанных тем, но суть моей попытки подключиться к Vertica с помощью R через OpenCPU и vRODBC:
- Я начал с RJDBC, который прекрасно работает в RStudio (даже в версии для сервера RStudio), но OpenCPU/rApache это не нравится. rJava в OpenCPU
- Я установил пакет vRODBC, который является производным от RODBC, и я успешно запросил Vertica как из CMD Line, используя isql, так и из RStudio Server, используя DSN и odbcConnect('myDSNName'). Установка vRODBC
- Когда я компилирую приложение с кодом, который работает на RStudio Server, я получаю ошибку соединения при попытке запустить его через OpenCPU (извлечено из консоли):
Работает с сервера RStudio
> vertica = odbcConnect("VerticaDSN")
> data = sqlQuery(vertica, query)
> data
TDIDCount
1 3015
Но не из приложения Opencpu, которое я создал
//From Console Output
[vRODBC] ERROR: state 01000, code 0, message [unixODBC][Driver Manager]Can't open lib '/opt/vertica/lib64/libverticaodbc.so.6.1.3' : file not found
Warning message:
ODBC connection failed
[1] -1
Я проверил этот путь, и он явно существует. Я нашел другой вопрос, который говорит, что эта ошибка вызвана зависимостью, которая не может быть загружена для библиотеки libverticaodbc.so, поэтому я попытался выполнить шаги, чтобы увидеть, для какой библиотеки у меня, возможно, не было разрешений с пользователем opencpu, но безрезультатно., Не могу открыть lib с UnixODBC
$ sudo su - opencpu
$ ldd /opt/vertica/lib64/libverticaodbc.so.6.1.3
linux-vdso.so.1 => (0x00007fff5cd10000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f16a30cc000)
libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2 (0x00007f16a2eb1000)
libcrypt.so.1 => /lib/x86_64-linux-gnu/libcrypt.so.1 (0x00007f16a2c77000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f16a2a59000)
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f16a2755000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f16a244e000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f16a2238000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f16a1e73000)
/lib64/ld-linux-x86-64.so.2 (0x00007f16a4854000)
$
Я близко... очень близко... Я чувствую это... просто нужно получить некоторую теневую переменную окружения или фиксированные разрешения, чтобы OpenCPU мог правильно находить драйверы ODBC, и тогда у меня будет больше поддержки R+webApp я вперед!