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 -> <Anonymous>
停止執行
*** 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,還是同樣的錯. 


這個命令沒有涉及到 arch 的選擇, 所以問題應該就出在對 arch 的選擇上,默認值就是 i386, 那麼如何讓執行的時候不選擇 i386 即可。Google 後,Installing only 64 bit packages via the R command line 說了加上 --no-multiarch,然後就成功了!


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章