0

最终,我试图在Windows 7ReporteRs系统上安装 R 包( ReporteRs_0.8.7.tar.gz) (会话信息和下面的其他信息)。这取决于我收到安装错误的包( )。ReporteRsjarsReporteRsjars_0.0.2.tar.gz

这也取决于安装的 R 包rJava以及 JDK/JRE (jre1.8.0_112)。

我正在安装在无法访问 Internet 的机器上,所以我是从本地版本的 CRAN 中执行此操作PACKAGESPACKAGES.gz。这一直没有任何问题(至少现在是这样)。

rJava加载没有任何问题,但在安装时ReporteRsjars,我收到以下错误(请参阅下面的安装尝试错误)。

注意:其他 StackOverflow 问题似乎更集中在library(rJava)问题上,而不是在安装依赖于rJava.

rJavaDLL位于以下位置

C:/Program Files/R/R-3.3.2/library/rJava/libs/x64/rJava.dll

这被重新安装了很多次(成功)。

错误下方sessionInfo有更多信息(包括我尝试过的内容)。

安装尝试错误

cran_dir_url设置为 CRAN 包所在的路径。这是前缀file://

> library(rJava)
> install.packages('ReporteRsjars', contriburl=cran_dir_url, repos = cran_dir_url, type = 'source')

## * installing *source* package 'ReporteRsjars' ...
## ** package 'ReporteRsjars' successfully unpacked and MD5 sums checked
## ** R
## ** inst
## ** preparing package for lazy loading
## ** help
## No man pages found in package  'ReporteRsjars' 
## *** installing help indices
## ** building package indices
## ** testing if installed package can be loaded
## *** arch - i386
## Error : .onLoad failed in loadNamespace() for 'rJava', details:
##   call: library.dynam("rJava", pkgname, libname)
##   error: DLL 'rJava' not found: maybe not installed for this architecture?
## Error: loading failed
## Execution halted
## *** arch - x64
## ERROR: loading failed for 'i386'
## * removing 'C:/Program Files/R/R-3.3.2/library/ReporteRsjars'
## Warning in install.packages :
##   running command '"C:/PROGRA~1/R/R-33~1.2/bin/x64/R" CMD INSTALL -l "C:\Program Files\R\R-3.3.2\library" /Users/cirina_ext/Documents/StevenBanville/CRAN_Targeted/ReporteRsjars_0.0.2.tar.gz' had status 1
## Warning in install.packages :
##   installation of package 'ReporteRsjars' had non-zero exit status
## 

环境信息和工具

路径信息: 以下包含在系统路径中,是安装 Java 的位置。

C:\Program Files\Java\jre1.8.0_112\bin\;C:\Program Files\Java\jre1.8.0_112\bin\server\;%path%

(JDK 安装程序:jdk-8u112-windows-x64)

Rtools 版本和位置

版本:3.4.0.1962 位置:C:\Rtools

我试过的

  • 我开始尝试安装ReporteRsR 包,这安装了所有依赖项,但在ReporteRsjars包上失败了。

  • 安装 JDK/JRE 后,我重新安装了rJava(这在多次尝试安装 R 包后完成了几次)。所有rJava安装都成功,library(rJava).

  • 我试图在 Windows 命令窗口中运行以下命令,正如我在许多 SO 答案中看到的那样。

    R CMD javareconf

    'javareconf' 不是内部或外部命令、可运行程序或批处理文件。

  • 我试图rJava在系统变量中包含指向 DLL的路径,path但这不起作用。

  • 注意:每次尝试后我都重新启动了 RGui 和 RStudio(我在这两种环境中都尝试过)。我也重新启动了机器。

  • 我做了很多谷歌搜索并查看了 StackOverflow,但发现的所有问题都与此不同。它们看起来很相似,但是在尝试了很多事情之后,我仍然收到上述错误。我省略了我查看的链接,但如果有帮助可以添加它们。

帮助我排除故障和解决此问题的指导将不胜感激。

会话信息

> sessionInfo('rJava')
## R version 3.3.2 (2016-10-31)
## Platform: x86_64-w64-mingw32/x64 (64-bit)
## Running under: Windows 7 x64 (build 7601) Service Pack 1
## 
## locale:
## [1] LC_COLLATE=English_United States.1252  LC_CTYPE=English_United States.1252   
## [3] LC_MONETARY=English_United States.1252 LC_NUMERIC=C                          
## [5] LC_TIME=English_United States.1252    
## 
## attached base packages:
## character(0)
## 
## other attached packages:
## [1] rJava_0.9-8
## 
## loaded via a namespace (and not attached):
## [1] graphics_3.3.2  tools_3.3.2     utils_3.3.2     grDevices_3.3.2 stats_3.3.2     datasets_3.3.2 
## [7] methods_3.3.2   base_3.3.2     

编辑

我尝试在仅使用 64 位版本的 Java(并确认它是 64 位)的另一台机器上进行相同的安装并得到相同的错误。这是一个片段,但它与上述错误相同:

...
*** arch - i386
Error : .onLoad failed in loadNamespace() for 'rJava', details:
  call: library.dynam("rJava", pkgname, libname)
  error: DLL 'rJava' not found: maybe not installed for this architecture?
Error: loading failed
Execution halted
...

我仍在查看@42- 评论中的链接,但这看起来不像 JRE/JDK 不是 64 位的问题。

编辑 2

注意:这不是作为答案发布的,因为它只是一种解决方法。

我找到了一个不太理想的解决方法。似乎从本地 CRAN 副本进行的安装并不像我预期的那样相似。我使用非本地 CRAN(即通常的方式)在等效的 Windows 7 机器上安装了有问题的库安装,并将目录复制到另一台机器(即未连接到 Internet 的机器)。这似乎有效,但尚不清楚为什么其他方法没有(本地 CRAN 副本和更新的 PACKAGES 文件)。我注意到的一件事是,当访问通常的 CRAN 存储库时,它使用.zip了库的版本而不是tar.gz; 我不确定这是否重要。

编辑 3

根据 David Gohel 在 this ReporteRs Issues中的回复,添加的以下代码INSTALL_opts = "--no-multiarch"可能会解决该问题:

install.packages("ReporteRs", contriburl=cran_dir_url,
                 repos = cran_dir_url, 
                 type = 'source', INSTALL_opts = "--no-multiarch")

如果我确定它可以解决问题,我会将其添加为答案,但是,我已经实施了EDIT 2中提到的解决方法。

4

1 回答 1

1

根据 David Gohel 在此GitHub ReporteRs Issues中的响应,添加了以下代码INSTALL_opts = "--no-multiarch",解决了我遇到的问题:

install.packages("ReporteRs", contriburl=cran_dir_url,
                 repos = cran_dir_url, 
                 type = 'source',
                 INSTALL_opts = "--no-multiarch")

编辑

该变量cran_dir_url应指向包含.tar.gz安装包文件的目录。可以使用的两个路径示例如下:

# (*) Web: URL pointing to CRAN
cran_dir_url <- "https://cloud.r-project.org/src/contrib"

# (*) Local: Pointing to local copy of CRAN (or whatever local packages you
# would like to install).
# Note: this example is a Mac OS path with username "someuser".
# Note: the three "/" chars are correct ("file://" followed by "/Users/..." => "file:///Users/..."
cran_dir_url <- "file:///Users/someuser/CRAN_Local/"

在上述两个路径(http 和 file)内部,会有.tar.gz文件(例如ggplot2_3.3.5.tar.gz)。

于 2016-11-18T18:51:58.800 回答