我在VM VirtualBox上創建了一個新的ubuntu-16.04.2-desktop-amd64機器,我希望能夠在Rmpi中使用R環境。在Ubuntu 16.04上安裝Rmpi VirtualBox
以下兩種方法都會給出類似的錯誤。
更新簡化預建立的二進制方法:
當Ubuntu的已安裝的I開了一個終端並執行以下命令:
~$ sudo apt-get update
~$ sudo apt-get install openmpi-bin
~$ sudo apt-get install r-base
~$ sudo apt-get install r-cran-rmpi
~$ R
這打開了R端子和我調用後續功能導致出現錯誤:
> library(Rmpi)
libmpi.so: cannot open shared object file: No such file or directory
Error : .onLoad failed in loadNamespace() for 'Rmpi', details:
call: fun(libname, pkgname)
error: Cannot start MPI_Init(). Exit
Error: package or namespace load failed for ‘Rmpi’
我嘗試過的其他方法inc inc lude使用本地OpenMPI安裝,並使用R功能install.packages
安裝Rmpi軟件包(請參閱下文)。這些都導致了相同的錯誤。
我也試過用MPICH代替~$ sudo apt-get install mpich
作爲上述過程中的第二個命令(包括使用R函數來安裝軟件包),這會導致更加繁重的運行時錯誤。
有誰知道我做錯了什麼,或者我能做些什麼來解決這個安裝錯誤?
或者,任何人都可以使用任何Linux發行版或帶有預裝組件的映像成功安裝帶有Rmpi的VirtualBox機器?
原始本地安裝方法:
我按照上this blog說明下載的openmpi版本2.1.0,編譯和安裝它。然而,當我嘗試R中與安裝:
> install.packages("Rmpi", configure.args =
c("--with-Rmpi-include=/home/jormunr/openmpi/include",
"--with-Rmpi-libpath=/home/jormunr/openmpi/lib",
"--with-Rmpi-type=OPENMPI",
"--with-mpi=/home/jormunr/openmpi/"))
它提供了以下錯誤
Error: .onLoad failed in loadNamespace() for 'Rmpi', details:
call: dyn.load(file, DLLpath = DLLpath, ...)
error: unable to load shared object '/home/jormunr/R/x86_64-pc-linux-gnu-library/3.2/Rmpi/libs/Rmpi.so':
libmpi.so.20: cannot open shared object file: No such file or directory
Error: loading failed
Execution halted
ERROR: loading failed
我可以看到「libmpi.so.20」文件是在/ home/jormunr/openmpi/lib,我將其作爲安裝的參數之一提供。
''sudo apt-get install r-cran-rmpi',因爲我們確實有Rmpi作爲預構建二進制文件。如果您必須使用本地OpenMPI安裝,請檢查autoconf代碼。 –
在啓動R之前執行'export LD_LIBRARY_PATH =/home/jormunr/openmpi/lib:$ LD_LIBRARYP_PATH'。您也可以將它放在shell的啓動文件中。它將允許運行時鏈接編輯器查找MPI庫。 –
@DirkEddelbuettel - 感謝您的評論。我很高興使用預建立二進制。我嘗試使用'sudo apt-get install r-cran-rmpi'來獲取二進制文件,但是當我進入R並加載了'library(Rmpi)'時,我得到了相同的錯誤: libmpi.so:can not打開共享目標文件:無此文件或目錄 錯誤:.inLoad在'Rmpi'的loadNamespace()中失敗,詳細信息: 調用:fun(libname,pkgname) 錯誤:無法啓動MPI_Init()。退出 錯誤:'Rmpi'包或命名空間加載失敗 –