ROracle не загружает библиотеку Instantclient в MacOS High Sierra

Я установил Oracle Instant Client 12.1.0.2.0 и теперь пытаюсь установить ROracle 1.3-1 для R с помощью следующей команды:

R CMD INSTALL --configure-args='--with-oci-lib=/usr/local/oracle/instantclient12 --with-oci-inc=/usr/local/oracle/instantclient12/sdk/include' ROracle_1.3-1.tar.gz

Мгновенный клиент Oracle установлен в /usr/local/oracle/instantclient12.

К сожалению, я получаю следующую ошибку в конце установки ROracle, и мне было трудно понять, что происходит не так:

** testing if installed package can be loaded
Error: package or namespace load failed for ‘ROracle’ in dyn.load(file, DLLpath = DLLpath, ...):
 unable to load shared object '/Library/Frameworks/R.framework/Versions/3.4/Resources/library/ROracle/libs/ROracle.so':
  dlopen(/Library/Frameworks/R.framework/Versions/3.4/Resources/library/ROracle/libs/ROracle.so, 6): Library not loaded: @rpath/libclntsh.dylib.12.1
Referenced from: /Library/Frameworks/R.framework/Versions/3.4/Resources/library/ROracle/libs/ROracle.so
  Reason: image not found
Error: loading failed
Execution halted
ERROR: loading failed
* removing ‘/Library/Frameworks/R.framework/Versions/3.4/Resources/library/ROracle’

По какой-то причине @rpath/libclntsh.dylib.12.1 не может быть найден и препятствует полной установке ROracle. Я попытался поместить ссылку на libclntsh.dylib.12.1 в ~/lib и /usr/lib, но ни одна из ссылок не сработала. Я также пытался указать каталог, содержащий libclntsh.dylib.12.1, с переменными среды DYLD_FALLBACK_LIBRARY_PATH и DYLD_LIBRARY_PATH, но они также не сработали.

Я использую MacOS High Sierra (10.13) и R 3.4.2.


person ejames    schedule 22.10.2017    source источник


Ответы (1)


Единственный способ, который я нашел до сих пор, чтобы обойти эту проблему, — это поместить ссылку на libclntsh.dylib.12.1 в каталог библиотек фреймворка для R. На моем компьютере каталог lib фреймворка R находится в /Library/Frameworks/R.framework/Resources/lib

Мой мгновенный клиент установлен в /usr/local/oracle/instantclient12

Поэтому я использую следующую команду, чтобы сделать ссылку на файл:

ln -s /usr/local/oracle/instantclient12/libclntsh.dylib.12.1 /Library/Frameworks/R.framework/Resources/lib/libclntsh.dylib.12.1

Это решает проблему установки ROracle, и теперь я могу без проблем загрузить библиотеку ROracle в R.

person ejames    schedule 22.10.2017