rJava не удается установить (MacOS, Red Hat)
Я испытываю ту же проблему rJava, которую многие другие люди, по-видимому, имели в тот или иной момент. Ошибка возникает, когда R CMD INSTALL
проверяет, могут ли JNI-программы быть скомпилированы.
Выход рекомендует работать R CMD javareconf -ed
или же sudo R CMD javareconf
Выход последнего:
computer: home$ sudo R CMD javareconf
Java interpreter : /usr/bin/java
Java version : 1.6.0_31
Java home path : /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
Java compiler : /usr/bin/javac
Java headers gen.: /usr/bin/javah
Java archive tool: /usr/bin/jar
Java library path:
JNI linker flags : -framework JavaVM
JNI cpp flags : -I$(JAVA_HOME)/include
Updating Java configuration in /Library/Frameworks/R.framework/Resources
Done.
И при попытке установить rJava впоследствии,
computer: home$ R CMD INSTALL ~/Downloads/rJava_0.9-4.tar.gz
* installing to library ‘/Library/Frameworks/R.framework/Versions/2.15/Resources/library’
* installing *source* package ‘rJava’ ...
checking for gcc... gcc -arch x86_64 -std=gnu99
checking for C compiler default output file name... a.out
/* Passes all checks */
configure: checking whether gcc -arch x86_64 -std=gnu99 supports static inline...yes
checking whether setjmp.h is POSIX.1 compatible... yes
checking whether sigsetjmp is declared... yes
checking whether siglongjmp is declared... yes
checking Java support in R... present:
interpreter : '/usr/bin/java'
archiver : '/usr/bin/jar'
compiler : '/usr/bin/javac'
header prep.: '/usr/bin/javah'
cpp flags : '-I/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/include'
java libs : '-framework JavaVM'
checking whether JNI programs can be compiled... configure: error: Cannot compile a simple JNI program. See config.log for details.
Make sure you have Java Development Kit installed and correctly registered in R.
If in doubt, re-run "R CMD javareconf" as root.
ERROR: configuration failed for package ‘rJava’
* removing ‘/Library/Frameworks/R.framework/Versions/2.15/Resources/library/rJava’
* restoring previous ‘/Library/Frameworks/R.framework/Versions/2.15/Resources/library/rJava’
Альтернативная попытка где /usr/bin/javac
заменяется /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home
терпит неудачу точно так же.
Я использую Mac OS 10.7.3 и
computer: home$ java -version
java version "1.6.0_31"
Java(TM) SE Runtime Environment (build 1.6.0_31-b04-415-11M3646)
Java HotSpot(TM) 64-Bit Server VM (build 20.6-b01-415, mixed mode)
Следующее в моем .bash_profile
export JAVA_HOME=/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
Кроме того, у меня та же проблема с Red-Hat. Я надеюсь, что любое исправление будет работать там, но если это не так, а почему нет, то, пожалуйста, объясните.
Я пользуюсь невероятной базой знаний этого сайта уже пару лет, но это мой первый пост. Большое спасибо заранее.
Некоторые (не все) ресурсы, которые я уже просматривал,
- https://stat.ethz.ch/pipermail/r-devel/2008-November/051224.html
- https://stat.ethz.ch/pipermail/r-help/2008-October/177688.html
- R: установка пакета rJava не удалась
Обратите внимание, что apt-get
решение в последней ссылке бесполезно для меня (я думаю), если нет эквивалентного решения для port
и / или yum
,
2 ответа
Я использую Redhat Linux 7.1
Я получил ту же проблему, что и выше, и я выполнил следующие шаги
1) Отредактируйте /usr/lib64/R/etc/Renviron и добавьте "CPPFLAGS=${CPPFLAGS-'-ldl'}" в конец файла
2) Затем найдите дом Java и установите его, как показано ниже (установите дом Java до / JRE)
$export JAVA_HOME=/usr/lib/jvm/java-1.7.1-ibm-1.7.1.3.10-1jpp.1.el7_1.x86_64/jre
$export PATH=$PATH:$JAVA_HOME/bin
$R CMD javareconf
3) вызвать R из командной строки
$R
> install.packages("rJava")
> install.packages("RJDBC",dep=TRUE)
> q()
Save workspace image? [y/n/c]: y
У меня недавно была вариация на эту же проблему с RHEL 6.5. Я просмотрел эту ветку и многие другие. Проблема заключалась в том, что модули динамической загрузки не были обнаружены при тестировании компиляции программ JNI. Мое исправление было вставить "CPPFLAGS=${CPPFLAGS-'-ldl'}"
в файл
/usr/lib64/R/etc/Renviron