/usr/lib64/libstdc++.so.6:加载 R 包时找不到版本“CXXABI_1.3.8”
/usr/lib64/libstdc++.so.6: version `CXXABI_1.3.8' not found when loading R packages
我知道这个问题已经被问过很多次了,但我的情况很特殊:我正在使用一个 Linux 集群,我没有 root 但只能使用像 "module load gcc" 这样的命令 "module load mkl" "module load R3.3/mkl" 依此类推加载库。
最近我尝试在该集群上以我的帐户安装 mxnet,之后一切似乎都正常,但后来我使用 "module load R3.3/mkl" 而不是 "module load R3.2/mkl" 从 R3.2 切换到 R3.2 , 但现在当我尝试加载像 stringi 这样的 R 包时,它说
library(stringi),
Error in dyn.load(file, DLLpath = DLLpath, ...) :
unable to load shared object '/home/hpc/pr74ze/ru37wof2/R/x86_64-pc-linux-gnu-library/3.3/stringi/libs/x
86_64/stringi.so':
/usr/lib64/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by /home/hpc/pr74ze/ru37wof2/R/x86
_64-pc-linux-gnu-library/3.3/stringi/libs/x86_64/stringi.so)
Error: package or namespace load failed for ‘stringi’
我记得之前试过加载gsl
module list
Currently Loaded Modulefiles:
1) admin/1.0 3) intel/16.0 5) mpi.intel/5.1 7) R/3.3mkl 9) git/latest 11) gsl/1.16
2) tempdir/1.0 4) mkl/11.3 6) lrz/default 8) nano/2.2 10) gcc/4.9
如果我运行以下
echo $LD_LIBRARY_PATH
/usr/lib64:/lrz/mnt/sys.x86_64/compilers/java/jdk1.7.0_51/jre/lib/amd64/server:/usr/lib64:/lrz/mnt/sys.x86
_64/compilers/java/jdk1.7.0_51/jre/lib/amd64/server:/lrz/sys/libraries/gsl/1.16/lib:/lrz/sys/compilers/gcc
/4.9.3/lib64:/lrz/sys/compilers/gcc/4.9.3/lib:/lrz/sys/applications/R/3.3.1_MKL/lib64/R/lib/x86_64:/lrz/sy
s/intel/impi/5.1.3.181/lib64:/lrz/sys/intel/studio2016_u4/compilers_and_libraries_2016.4.258/linux/mkl/lib
/intel64:/lrz/sys/intel/studio2016_u4/debugger_2016/libipt/intel64/lib:/lrz/sys/intel/studio2016_u4/compil
ers_and_libraries_2016.4.258/linux/compiler/lib/intel64
如果我尝试安装 RcppZiggurat
* installing *source* package ‘RcppZiggurat’ ...
** package ‘RcppZiggurat’ successfully unpacked and MD5 sums checked
** libs
*** arch - x86_64
icpc -I/lrz/sys/applications/R/3.3.1_MKL/lib64/R/include -I/lrz/sys/applications/R/3.3.1_MKL/lib64/R/include/x86_64 -DNDEBUG -I. -I../inst/include -I/usr/local/include -I"/home/hpc/pr74ze/ru37wof2/R/x86_64-pc-lin
ux-gnu-library/3.3/Rcpp/include" -I"/home/hpc/pr74ze/ru37wof2/R/x86_64-pc-linux-gnu-library/3.3/RcppGSL/include" -fpic -O3 -c RcppExports.cpp -o RcppExports.o
In file included from /home/hpc/pr74ze/ru37wof2/R/x86_64-pc-linux-gnu-library/3.3/RcppGSL/include/RcppGSL.h(25),
from RcppExports.cpp(4):
/home/hpc/pr74ze/ru37wof2/R/x86_64-pc-linux-gnu-library/3.3/RcppGSL/include/RcppGSLForward.h(26): catastrophic error: cannot open source file "gsl/gsl_vector.h"
#include <gsl/gsl_vector.h>
^
compilation aborted for RcppExports.cpp (code 4)
但是我应该如何着手找出问题所在呢?
注意隐藏在 /home/hpc/pr74ze/ru37wof2/R/x86_64-pc-linux-gnu-library/3.3/stringi/libs/x 86_64/stringi.so
中的 3.3 -- 你可能在 3.2 下构建它,所以它位于 /home/hpc/pr74ze/ru37wof2/R/x86_64-pc-linux-gnu-library/3.2
.
下面
您可以通过直接或通过环境变量设置自己的 .libPaths()
来解决这个问题——您可能需要类似 ~/R/library
的东西。有关详细信息,请参阅 help(Startup)
。
我知道这个问题已经被问过很多次了,但我的情况很特殊:我正在使用一个 Linux 集群,我没有 root 但只能使用像 "module load gcc" 这样的命令 "module load mkl" "module load R3.3/mkl" 依此类推加载库。
最近我尝试在该集群上以我的帐户安装 mxnet,之后一切似乎都正常,但后来我使用 "module load R3.3/mkl" 而不是 "module load R3.2/mkl" 从 R3.2 切换到 R3.2 , 但现在当我尝试加载像 stringi 这样的 R 包时,它说
library(stringi), Error in dyn.load(file, DLLpath = DLLpath, ...) : unable to load shared object '/home/hpc/pr74ze/ru37wof2/R/x86_64-pc-linux-gnu-library/3.3/stringi/libs/x 86_64/stringi.so': /usr/lib64/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by /home/hpc/pr74ze/ru37wof2/R/x86 _64-pc-linux-gnu-library/3.3/stringi/libs/x86_64/stringi.so) Error: package or namespace load failed for ‘stringi’
我记得之前试过加载gsl
module list
Currently Loaded Modulefiles:
1) admin/1.0 3) intel/16.0 5) mpi.intel/5.1 7) R/3.3mkl 9) git/latest 11) gsl/1.16
2) tempdir/1.0 4) mkl/11.3 6) lrz/default 8) nano/2.2 10) gcc/4.9
如果我运行以下
echo $LD_LIBRARY_PATH
/usr/lib64:/lrz/mnt/sys.x86_64/compilers/java/jdk1.7.0_51/jre/lib/amd64/server:/usr/lib64:/lrz/mnt/sys.x86
_64/compilers/java/jdk1.7.0_51/jre/lib/amd64/server:/lrz/sys/libraries/gsl/1.16/lib:/lrz/sys/compilers/gcc
/4.9.3/lib64:/lrz/sys/compilers/gcc/4.9.3/lib:/lrz/sys/applications/R/3.3.1_MKL/lib64/R/lib/x86_64:/lrz/sy
s/intel/impi/5.1.3.181/lib64:/lrz/sys/intel/studio2016_u4/compilers_and_libraries_2016.4.258/linux/mkl/lib
/intel64:/lrz/sys/intel/studio2016_u4/debugger_2016/libipt/intel64/lib:/lrz/sys/intel/studio2016_u4/compil
ers_and_libraries_2016.4.258/linux/compiler/lib/intel64
如果我尝试安装 RcppZiggurat
* installing *source* package ‘RcppZiggurat’ ...
** package ‘RcppZiggurat’ successfully unpacked and MD5 sums checked
** libs
*** arch - x86_64
icpc -I/lrz/sys/applications/R/3.3.1_MKL/lib64/R/include -I/lrz/sys/applications/R/3.3.1_MKL/lib64/R/include/x86_64 -DNDEBUG -I. -I../inst/include -I/usr/local/include -I"/home/hpc/pr74ze/ru37wof2/R/x86_64-pc-lin
ux-gnu-library/3.3/Rcpp/include" -I"/home/hpc/pr74ze/ru37wof2/R/x86_64-pc-linux-gnu-library/3.3/RcppGSL/include" -fpic -O3 -c RcppExports.cpp -o RcppExports.o
In file included from /home/hpc/pr74ze/ru37wof2/R/x86_64-pc-linux-gnu-library/3.3/RcppGSL/include/RcppGSL.h(25),
from RcppExports.cpp(4):
/home/hpc/pr74ze/ru37wof2/R/x86_64-pc-linux-gnu-library/3.3/RcppGSL/include/RcppGSLForward.h(26): catastrophic error: cannot open source file "gsl/gsl_vector.h"
#include <gsl/gsl_vector.h>
^
compilation aborted for RcppExports.cpp (code 4)
但是我应该如何着手找出问题所在呢?
注意隐藏在 /home/hpc/pr74ze/ru37wof2/R/x86_64-pc-linux-gnu-library/3.3/stringi/libs/x 86_64/stringi.so
中的 3.3 -- 你可能在 3.2 下构建它,所以它位于 /home/hpc/pr74ze/ru37wof2/R/x86_64-pc-linux-gnu-library/3.2
.
您可以通过直接或通过环境变量设置自己的 .libPaths()
来解决这个问题——您可能需要类似 ~/R/library
的东西。有关详细信息,请参阅 help(Startup)
。