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

8mmmxcuj  于 2024-01-06  发布在  Linux
关注(0)|答案(1)|浏览(255)

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

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

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

  1. options(bitmapType='cairo')


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

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


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

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


我还确保安装了

  1. sudo apt install libpng-dev
  2. sudo apt install libcairo2-dev
  3. sudo apt install libjpeg-dev


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

  1. /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()的结果:

  1. > capabilities()
  2. jpeg png tiff tcltk X11 aqua
  3. FALSE FALSE FALSE TRUE FALSE FALSE
  4. http/ftp sockets libxml fifo cledit iconv
  5. TRUE TRUE FALSE TRUE TRUE TRUE
  6. NLS Rprof profmem cairo ICU long.double
  7. TRUE TRUE FALSE FALSE TRUE TRUE
  8. libcurl
  9. TRUE

7dl7o3gd

7dl7o3gd1#

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

  1. # getting R 4.3.2 from CRAN
  2. wget https://cran.r-project.org/src/base/R-4/R-4.3.2.tar.gz
  3. tar -xzvf R-4.3.2.tar.gz
  4. cd R-4.3.2
  5. # THIS is the crucial config part
  6. ./configure --with-x=yes --with-libpng=yes --enable-R-shlib
  7. make
  8. sudo make install

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

  1. options(bitmapType='cairo')


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

展开查看全部

相关问题