Не удается загрузить пакет ggplots2 через JRI

У меня проблемы с загрузкой пакета ggplot2 через интерфейс JRI. ggplot2 прекрасно загружается через скрипт R, поэтому я считаю, что он был установлен правильно. Только когда я пытаюсь загрузить его через JRI, я получаю следующую ошибку.

Loading required package: reshape
Loading required package: plyr
Error in dyn.load(file, DLLpath = DLLpath, ...):
unable to load shared object '/usr/local/R/lib/R/library/plyr/libs/plyr.so':
ld.so.1: java: fatal: relocation error: file /usr/local/R/lib/R/library/plyr/libs/plyr.so: symbol R_NilValue: referenced symbol not found
Error: package 'plyr' could not be loaded

Таким образом, ggplot2 требует загрузки пакета plyr. Этот пакет будет загружен, если выполняется сценарием R, но не из JRI. Я подозреваю, что это связано с тем, что перед загрузкой JRI переменная окружения была установлена ​​неправильно, возможно, LD_LIBRARY_PATH. Глядя на сценарий R, я не знаю, где установлен этот путь (поскольку сценарий R, по-видимому, правильно устанавливает все переменные среды, чтобы plyr мог найти нужный символ R_NilValue). Я скопировал все настройки переменных среды из сценария R в сценарий, который я использую для загрузки JRI (чтобы он правильно устанавливал R_HOME, R_SHARE_DIR, R_INCLUDE_DIR и R_DOC_DIR - у меня были проблемы с загрузкой других пакетов через JRI, пока Я установил эти переменные среды, и это решило эти проблемы). Тем не менее, это не исправляет ошибку. Кроме того, я попытался загрузить пакет ggplots2 из сценария Run, предоставленного rJava/JRI, и все еще получаю ту же ошибку. Может кто-нибудь сказать мне, где определяется R_NilValue, и что я делаю неправильно?

Я использую версию R 2.13.0 на 32-битной платформе sparc-sun-solaris2.10 с пакетами rJava 0.9-0 и ggplot2 0.8.9.

1 ответ

Это означает, что в пакетах есть несоответствие. Другими словами, существуют пакеты, созданные для статического R, которые используются со сборкой пакетов для динамического R. Повторная установка пакетов должна исправить это.

Другие вопросы по тегам