linux R内核不断崩溃的笔记本电脑由于图形

8mmmxcuj  于 12个月前  发布在  Linux
关注(0)|答案(1)|浏览(190)

我在Ubuntu 22.04远程机器上运行R 4.3.2。我使用vscode SHH到它用于除R之外的所有编码目的,因为每次我运行一个Ubuntu Notebook并执行代码时,R内核都会立即崩溃。日志说:

unable to start device PNG
Calls: <Anonymous> ... evaluate -> dev.new -> do.call -> <Anonymous> -> ok_device
In addition: Warning message:
In ok_device(filename, ...) : unable to open connection to X11 display ''
Execution halted

字符串
这自然让我想到了this post,所以根据建议,我尝试了切换

options(bitmapType='cairo')


在我的~/.Rprofile。这也不工作,但日志现在说:

13:52:48.798 [warn] StdErr from Kernel Process Error in dev.control(displaylist = "enable") : 
  dev.control() called without an open graphics device
Calls: <Anonymous> ... tryCatch -> tryCatchList -> evaluate -> dev.control
In addition: Warning message:
In ok_device(filename, ...) :
13:52:48.798 [warn] StdErr from Kernel Process type = "cairo" is unavailable. trying "Xlib"
Execution halted


在终端中运行R似乎很好,直到我尝试通过png()与图形对话:

> png()
Error in .External2(C_X11, paste0("png::", filename), g$width, g$height,  : 
  unable to start device PNG
In addition: Warning message:
In png() : could not open PNG file 'Rplot001.png'


我还确保安装了

sudo apt install libpng-dev
sudo apt install libcairo2-dev
sudo apt install libjpeg-dev


我认为我的$LD_LIBRARY_PATH也设置正确:

/usr/lib/x86_64-linux-gnu/libpng.so:/usr/lib/x86_64-linux-gnu/libcairo.so:/usr/lib/x86_64-linux-gnu/libpng.so:/usr/lib/x86_64-linux-gnu/libcairo.so:


我错过了什么?谢谢

编辑:capabilities()的结果:

> capabilities()
       jpeg         png        tiff       tcltk         X11        aqua 
      FALSE       FALSE       FALSE        TRUE       FALSE       FALSE 
   http/ftp     sockets      libxml        fifo      cledit       iconv 
       TRUE        TRUE       FALSE        TRUE        TRUE        TRUE 
        NLS       Rprof     profmem       cairo         ICU long.double 
       TRUE        TRUE       FALSE       FALSE        TRUE        TRUE 
    libcurl 
       TRUE

7dl7o3gd

7dl7o3gd1#

对于来世,我是这样解决的:
我检查了capabilities()作为@M。维京海盗建议在评论中,并看到PNG,但也开罗和X11是FALSE,这是奇怪的,因为我已经手动安装它们。
我意识到我的R dist可能是编译时没有这些功能的,出于一些奇怪的原因。因此,我重新编译并重新安装了R,如下所示:

#  getting R 4.3.2 from CRAN
wget https://cran.r-project.org/src/base/R-4/R-4.3.2.tar.gz
tar -xzvf R-4.3.2.tar.gz
cd R-4.3.2

# THIS is the crucial config part
./configure --with-x=yes --with-libpng=yes --enable-R-shlib

make
sudo make install

字符串
然而,错误首先持续存在,因为X11仍然设置为FALSE,所以我遵循常见的建议,通过追加切换到cairo

options(bitmapType='cairo')


~/.Rprofile(或您的.Rprofile所在的任何位置)
这就成功了:)

相关问题