R语言:本地安装OHDSI在GITHUB的DatabaseConnector包

一个R程序使用了 library(SqlRender) 和 library(devtools) 包,本地的R Version是3.3.1,报错说 devtools 不在这个版本里。于是下了 R-3.4.0,由于同时安装了32-bit和64-bit,在下载 devtools 其从 i386 下面查找依赖包,但是依赖的包都被下载到 x64 所在的文件夹里。所以我重装了R-3.4.0,这次只安装 64-bit的,然后安装成功。


还有一个library(DatabaseConnector)无法直接使用 install.packages() 命令去安装,说不在R-3.4.0版本里。又打算通过install_github("ohdsi/DatabaseConnector") 去安装,说不识别install_github函数,然后进入 DatabaseConnector 的 GITHUB 网页,才知道安装方式:

install.packages("drat")
drat::addRepo("OHDSI")
install.packages("DatabaseConnector")

但是报错了:

> drat::addRepo("OHDSI")
> install.packages("DatabaseConnector")
--- 在此連線階段时请选用CRAN的鏡子 ---
Warning: 无法在貯藏處https://OHDSI.github.io/drat/bin/windows/contrib/3.4中读写索引:
  无法打开URL'https://OHDSI.github.io/drat/bin/windows/contrib/3.4/PACKAGES'
安装源码包‘DatabaseConnector’

试开URL’https://OHDSI.github.io/drat/src/contrib/DatabaseConnector_1.10.2.tar.gz'
Content type 'application/octet-stream' length 6970613 bytes (6.6 MB)
downloaded 6.6 MB

* installing *source* package 'DatabaseConnector' ...
** R
** inst
** preparing package for lazy loading
** help
*** installing help indices
** building package indices
** testing if installed package can be loaded
*** arch - i386
Error: package or namespace load failed for 'grDevices' in library.dynam(lib, package, package.lib):
 没有这个DLL 'utils':是不是没有为此架构安装?
Error: package or namespace load failed for 'graphics' in library.dynam(lib, package, package.lib):
 没有这个DLL 'utils':是不是没有为此架构安装?
Error: package or namespace load failed for 'stats' in library.dynam(lib, package, package.lib):
 没有这个DLL 'utils':是不是没有为此架构安装?
在启动过程中 - Warning messages:
1: package 'utils' in options("defaultPackages") was not found 
2: package 'grDevices' in options("defaultPackages") was not found 
3: package 'graphics' in options("defaultPackages") was not found 
4: package 'stats' in options("defaultPackages") was not found 
Error in library.dynam(lib, package, package.lib) : 
  没有这个DLL 'tools':是不是没有为此架构安装?
Calls: ::: ... tryCatch -> tryCatchList -> tryCatchOne -> 
停止执行
*** arch - x64
ERROR: loading failed for 'i386'
* removing 'D:/software/R-3.4.0/library/DatabaseConnector'
* restoring previous 'D:/software/R-3.4.0/library/DatabaseConnector'

下载的程序包在
        ‘C:\Users\Lenovo\AppData\Local\Temp\RtmpAXT2Gv\downloaded_packages’里
Warning messages:
1: 运行命令'"D:/software/R-3.4.0/bin/x64/R" CMD INSTALL -l "D:\software\R-3.4.0\library" C:\Users\Lenovo\AppData\Local\Temp\RtmpAXT2Gv/downloaded_packages/DatabaseConnector_1.10.2.tar.gz'的状态是1 
2: In install.packages("DatabaseConnector") :
  安装程序包‘DatabaseConnector’时退出狀態的值不是0

既然  DatabaseConnector_1.10.2.tar.gz 已经下载下来了,我就直接使用 7zip 解压,然后放到D:\software\R-3.4.0\library目录下,执行目标R程序,报错:

Error in library(DatabaseConnector) : 
  ‘DatabaseConnector’不是有效的已经安装了的程序包

然后再回头看错误消息,发现我明明只安装了64-bit的R-3.4.0,错误日志显示安装时选择的是 “*** arch - i386”,所以我进入系统环境变量,发现我的Path里的R环境还是之前的R-3.3.1,我就把它改过来. 再执行install.packages("DatabaseConnector")依然还是上面一大段错误,发现里面抱怨的很多依赖包没有找到,但是我在R的library路径下是有的。我直接打开DOS 窗口,进入D:\software\R-3.4.0\library目录,手动执行R CMD INSTALL C:/Users/Lenovo/AppData/Local/Temp/RtmpAXT2Gv/downloaded_packages/DatabaseConnector_1.10.2.tar.gz,还是同样的错. 

R语言:本地安装OHDSI在GITHUB的DatabaseConnector包_第1张图片

这个命令没有涉及到 arch 的选择, 所以问题应该就出在对 arch 的选择上,默认值就是 i386, 那么如何让执行的时候不选择 i386 即可。Google 后,Installing only 64 bit packages via the R command line 说了加上 --no-multiarch,然后就成功了!

R语言:本地安装OHDSI在GITHUB的DatabaseConnector包_第2张图片

你可能感兴趣的:(R)