我正在使用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
brew install --cask xquartz
。 - itpetersen