0

OpenSUSE 11.3の R 2.14.1-9.1 にrJavaパッケージをインストールしようとしています。この質問を見たことがありますが、Ubuntu 用です。Sun JDK をインストールし、それを使用するようにシステムを再構成しました。

admin@linux-nb3w:~> java -version
java version "1.6.0_29"
Java(TM) SE Runtime Environment (build 1.6.0_29-b11)
Java HotSpot(TM) Client VM (build 20.4-b02, mixed mode)
admin@linux-nb3w:~> 

編集 1: JDK と JRE を更新しました。を実行すると、わずかに異なるエラーが発生install.packages("rJava")します。次のエラー出力が表示されます (新しいエラーが投稿され、太字で終わります)。

> install.packages("rJava")
Installing package(s) into ‘/home/admin/R/i686-pc-linux-gnu-library/2.14’
(as ‘lib’ is unspecified)
--- Please select a CRAN mirror for use in this session ---
Loading Tcl/Tk interface ... done
trying URL 'http://ftp.iitm.ac.in/cran/src/contrib/rJava_0.9-3.tar.gz'
Content type 'application/x-gzip' length 537153 bytes (524 Kb)
opened URL
==================================================
downloaded 524 Kb

* installing *source* package ‘rJava’ ...
** package ‘rJava’ successfully unpacked and MD5 sums checked
checking for gcc... gcc -std=gnu99
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...                                                                                                                                                                                                                                          
checking for suffix of object files... o                                                                                                                                                                                                                                       
checking whether we are using the GNU C compiler... yes                                                                                                                                                                                                                        
checking whether gcc -std=gnu99 accepts -g... yes                                                                                                                                                                                                                              
checking for gcc -std=gnu99 option to accept ISO C89... none needed                                                                                                                                                                                                            
checking how to run the C preprocessor... gcc -std=gnu99 -E                                                                                                                                                                                                                    
checking for grep that handles long lines and -e... /usr/bin/grep                                                                                                                                                                                                              
checking for egrep... /usr/bin/grep -E                                                                                                                                                                                                                                         
checking for ANSI C header files... yes                                                                                                                                                                                                                                        
checking for sys/wait.h that is POSIX.1 compatible... yes                                                                                                                                                                                                                      
checking for sys/types.h... yes                                                                                                                                                                                                                                                
checking for sys/stat.h... yes                                                                                                                                                                                                                                                 
checking for stdlib.h... yes                                                                                                                                                                                                                                                   
checking for string.h... yes                                                                                                                                                                                                                                                   
checking for memory.h... yes                                                                                                                                                                                                                                                   
checking for strings.h... yes                                                                                                                                                                                                                                                  
checking for inttypes.h... yes                                                                                                                                                                                                                                                 
checking for stdint.h... yes                                                                                                                                                                                                                                                   
checking for unistd.h... yes                                                                                                                                                                                                                                                   
checking for string.h... (cached) yes                                                                                                                                                                                                                                          
checking sys/time.h usability... yes                                                                                                                                                                                                                                           
checking sys/time.h presence... yes                                                                                                                                                                                                                                            
checking for sys/time.h... yes                                                                                                                                                                                                                                                 
checking for unistd.h... (cached) yes                                                                                                                                                                                                                                          
checking for an ANSI C-conforming const... yes                                                                                                                                                                                                                                 
checking whether time.h and sys/time.h may both be included... yes                                                                                                                                                                                                             
configure: checking whether gcc -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/usr/lib/jvm/java-1.6.0-sun-1.6.0/jre/../include -I/usr/lib/jvm/java-1.6.0-sun-1.6.0/jre/../include/linux'                                                                                                                                                    
java libs   : '-L/usr/lib/jvm/java-1.6.0-sun-1.6.0/jre/lib/i386/client -L/usr/lib/jvm/java-1.6.0-sun-1.6.0/jre/lib/i386 -L/usr/lib/jvm/java-1.6.0-sun-1.6.0/jre/../lib/i386 -L/usr/java/packages/lib/i386 -L/lib -L/usr/lib -ljvm'
checking whether JNI programs can be compiled... yes
checking JNI data types... configure: error: One or more JNI types differ from the corresponding native type. You may need to use non-standard compiler flags or a different compiler in order to fix this.
ERROR: configuration failed for package ‘rJava’
* removing ‘/home/admin/R/i686-pc-linux-gnu-library/2.14/rJava’

The downloaded packages are in
        ‘/tmp/RtmpIFKEha/downloaded_packages’
Warning message:
In install.packages("rJava") :
  installation of package ‘rJava’ had non-zero exit status
> 

新しいエラー行:

JNI データ型をチェックしています... 構成: エラー: 1 つ以上の JNI 型が、対応するネイティブ型と異なります。これを修正するには、非標準のコンパイラ フラグまたは別のコンパイラを使用する必要がある場合があります。

R CMD javareconfas を実行しましたroot。cpp フラグ フィールドを空のままにします。これが失敗する理由の 1 つであることはわかっていますが、解決方法がわかりません。

私は、このインストール コマンドを dependencies=TRUE オプションを指定し、repo も明示的に指定して試しました (例: repo="blah blah")。何も機能しませんでした。

OpenSUSE の更新方法がわかりません。しかし、ここで手順が明確に示されている Ubuntu とは異なり、SUSE でそれを行う簡単な方法はないようです。

どんな助けでも大歓迎です。

4

3 に答える 3

5

実行update-alternatives --config javac中にもかかわらず、JAVA_HOME更新されませんでした。したがって、手動で設定します:

export JAVA_HOME=/usr/lib/jvm/java-1.6.0-sun-1.6.0.u6

上記のコマンドを として実行する必要がありますroot

それから走っR CMD javareconfた。ある程度の進歩があり、インストールは以前に失敗していた場所を超えました。しかし、それでも次のエラーが発生しました:

Warning: R include directory is empty -- perhaps need to install R-devel.rpm or similar
gcc -std=gnu99 -I/usr/lib/R/include -I. -I/usr/lib/jvm/java-1.6.0-sun-1.6.0/include -I/usr/lib/jvm/java-1.6.0-sun-1.6.0/include/linux -I/usr/local/include    -fpic  -fomit-frame-pointer -fmessage-length=0 -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -c Rglue.c -o Rglue.o
In file included from Rglue.c:2:0:
rJava.h:23:15: fatal error: R.h: No such file or directory
compilation terminated.
make: *** [Rglue.o] Error 1
ERROR: compilation failed for package ‘rJava’
* removing ‘/usr/lib/R/library/rJava’

The downloaded packages are in
        ‘/tmp/Rtmp3zqlgI/downloaded_packages’
Updating HTML index of packages in '.Library'
Making packages.html  ... done
Warning message:
In install.packages("rJava") :
  installation of package ‘rJava’ had non-zero exit status
>

次に、エラーの提案に従って、次のR-devel-rpmように をインストールしました。

zypper install R-patched R-patched-devel

(上記のコマンドを として実行root)

この後、Rを実行して動作し"install.package("rJava")"ました。

本当の質問に対して、ほぼ 5 時間のフラストレーションと 4 つの反対票がありましたが、ようやく安心しました! :)

于 2012-01-17T19:01:37.600 に答える
2
# R CMD javareconf
Updating Java configuration in /usr/lib/R Done.

> install.packages("rJava")
* DONE (rJava)
于 2012-12-07T13:29:43.763 に答える
0

素晴らしい。Gentooでも同じです。行う

env | grep JAVA

環境を確認します。

于 2012-11-12T08:29:48.393 に答える