在使用GitHub Actions for macOS进行测试之前,如何安装X11? 编辑:

问题描述

我正在用GitHub Actions测试R包,它在Windows和Linux上都成功。

但是,在Mac OS上它失败了,正如您在logs上看到的那样:

  Warning in grSoftVersion() :
    unable to load shared object '/Library/Frameworks/R.framework/Resources/modules//R_X11.so':
    dlopen(/Library/Frameworks/R.framework/Resources/modules//R_X11.so,6): Library not loaded: /opt/X11/lib/libSM.6.dylib
    Referenced from: /Library/Frameworks/R.framework/Versions/4.0/Resources/modules/R_X11.so
    Reason: image not found
  Warning in cairoVersion() :
    unable to load shared object '/Library/Frameworks/R.framework/Resources/library/grDevices/libs//cairo.so':
    dlopen(/Library/Frameworks/R.framework/Resources/library/grDevices/libs//cairo.so,6): Library not loaded: /opt/X11/lib/libXrender.1.dylib
    Referenced from: /Library/Frameworks/R.framework/Versions/4.0/Resources/library/grDevices/libs/cairo.so
    Reason: image not found
  Warning in png(filename = file,width = width,height = height,units = "in",:
    failed to load cairo DLL
  Error in external_img(new_src,height = height) : 
    src must be a string starting with 'rId' or an image filename
  Calls: %>% ... <Anonymous> -> body_add_gg -> body_add_img -> external_img
  Execution halted

我没有Mac电脑,也不打算在将来拥有,因此我无法自己进行测试。

正如我在include cairo R on a mac上看到的那样,这可能是由于未在测试计算机上安装X11。

如何告诉GitHub Actions该代码取决于X11?

编辑:

这是我的GitHub Actions配置文件:link。添加此代码可解决问题:

  - name: Install X11 dependencies on MacOS
    if: runner.os == 'macOS'
    run: |
      brew cask install xquartz

解决方法

GitHub动作默认VM上有Homebrew

https://github.com/actions/virtual-environments/blob/main/images/macos/macos-10.15-Readme.md

因此您可以通过以下方式通过自制程序安装X11

brew cask install xquartz

https://formulae.brew.sh/cask/xquartz

在执行R测试之前。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...