Jupyter R内核崩溃

11
我刚在Anaconda中安装了R Essentials(已经在电脑上安装了R),以便在Jupyter中使用R。现在,当我在Jupyter中打开一个新的R笔记本时,在几秒钟之后(甚至还没有输入任何内容),内核就会崩溃并需要重新启动。终端显示的错误信息是:
[I 12:30:36.297 NotebookApp] Kernel started: dd5dd612-2c8f-4235-9619-1cf5a46b3e89
IRkernel::main() 无法加载共享对象'/home/alberto/R/x86_64-pc-linux-gnu-library/3.2/stringi/libs/stringi.so': /home/alberto/anaconda3/lib/R/library/rzmq/libs/../../../../libstdc++.so.6: version `CXXABI_1.3.8' not found(需要/home/alberto/R/x86_64-pc-linux-gnu-library/3.2/stringi/libs/stringi.so) 我想这可能是共享库的问题,但我无法解决它...
2个回答

3

0

我曾经遇到过同样的问题。问题似乎是Jupyter中的R内核正在查看另一个位置,该位置有一个较旧版本的ibstdc++.so.6。

以下步骤对我有效(以root身份登录,因为R和python是以root身份安装的):

cp -fv /usr/local/lib64/libstdc++* /lib64/
cd /lib64
ln -sfT libstdc++.so.6.0.21 libstdc++.so.6

解释:

[root@SERVER ~]# strings /usr/local/lib64/libstdc++.so.6 | grep CXXABI_1.3
CXXABI_1.3
CXXABI_1.3.1
CXXABI_1.3.2
CXXABI_1.3.3
CXXABI_1.3.4
CXXABI_1.3.5
CXXABI_1.3.6
CXXABI_1.3.7
CXXABI_1.3.8
CXXABI_1.3.9
CXXABI_1.3
CXXABI_1.3.2
CXXABI_1.3.6
CXXABI_1.3.9
CXXABI_1.3.1
CXXABI_1.3.5
CXXABI_1.3.8
CXXABI_1.3.4
CXXABI_1.3.7
CXXABI_1.3.3
[root@SERVER ~]# strings /lib64/libstdc++.so.6 | grep CXXABI_1.3
CXXABI_1.3
CXXABI_1.3.1
CXXABI_1.3.2
CXXABI_1.3.3
CXXABI_1.3.4
CXXABI_1.3.5
CXXABI_1.3.6
CXXABI_1.3.7

我们可以看到/lib64/libstdc++.so.6指向的是比/usr/local/lib64/libstdc++.so.6旧的版本。
[root@SERVER ~]# ls /lib64/libstdc++.so.* -lrt
-rwxr-xr-x 1 root root   830776 Mar  5  2015 /lib64/libstdc++.so.5.0.7
lrwxrwxrwx 1 root root       18 Apr 29  2016 /lib64/libstdc++.so.5 -> libstdc++.so.5.0.7
lrwxrwxrwx 1 root root       19 Jan 27 01:46 /lib64/libstdc++.so.6 -> libstdc++.so.6.0.19
-rwxr-xr-x 1 root root 11103508 Feb  3 21:41 /lib64/libstdc++.so.6.0.19
-rwxr-xr-x 1 root root 11103508 Feb  3 21:41 /lib64/libstdc++.so.6.0.21
-rw-r--r-- 1 root root     2397 Feb  3 21:41 /lib64/libstdc++.so.6.0.21-gdb.py
[root@SERVER ~]# ls /usr/local/lib64/libstdc++* -lrt
-rwxr-xr-x 1 root root      905 Jun 15  2016 /usr/local/lib64/libstdc++fs.la
-rw-r--r-- 1 root root 10964026 Jun 15  2016 /usr/local/lib64/libstdc++fs.a
-rwxr-xr-x 1 root root 11103508 Jun 15  2016 /usr/local/lib64/libstdc++.so.6.0.21
lrwxrwxrwx 1 root root       19 Jun 15  2016 /usr/local/lib64/libstdc++.so.6 -> libstdc++.so.6.0.21
lrwxrwxrwx 1 root root       19 Jun 15  2016 /usr/local/lib64/libstdc++.so -> libstdc++.so.6.0.21
-rwxr-xr-x 1 root root      965 Jun 15  2016 /usr/local/lib64/libstdc++.la
-rw-r--r-- 1 root root 28847974 Jun 15  2016 /usr/local/lib64/libstdc++.a

所以,我将所有的libstd++文件从/usr/local/lib64复制到/lib64,然后更改了软链接指向新版本。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接