如何在使用GitHub Actions进行macOS测试之前安装X11?

11

我正在使用GitHub Actions测试一个R包,它在Windows和Linux上成功了。

然而,在Mac OS上它失败了,你可以在日志中看到:

  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, width = width, 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配置文件:链接。添加了这段代码解决了问题:

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

8

1
谢谢你的回答,我已经解决了如何在配置文件中包含这行代码的问题,现在一切都正常了 :-) - Dan Chaltiel
1
这是我在GitHub Actions中安装X11和XQuartz所需使用的命令:brew install --cask xquartz - itpetersen

2
我的做法是将以下内容添加到工作流文件中:
      - name: Install XQuartz on macOS
        if: runner.os == 'macOS'
        run: brew install xquartz --cask

我在这里找到了这些信息,并使用这个评论进行了调整(因为原始代码无法运行,会出现错误)。


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