代码之家  ›  专栏  ›  技术社区  ›  Rob Hyndman

如何修复macos的R CMD检查中的tcltk错误

  •  0
  • Rob Hyndman  · 技术社区  · 2 年前

    我在上收到以下错误 Github Action R CMD check for Mac OS 。其他操作系统没有错误。奇怪的是,我的包根本不使用tcltk。我不知道如何修复包以避免这个问题,CRAN不会让我上传这个问题。

    ── Install failure ─────────────────────────────────────────────────────────────
    
    * installing *source* package ‘weird’ ...
    ** using staged installation
    ** R
    ** data
    *** moving datasets to lazyload DB
    ** inst
    ** byte-compile and prepare package for lazy loading
    tcltk DLL is linked to '/opt/X11/lib/libX11.6.dylib'
    Error: Error: .onLoad failed in loadNamespace() for 'tcltk', details:
      call: fun(libname, pkgname)
      error: X11 library is missing: install XQuartz from www.xquartz.org
    Execution halted
    ERROR: lazy loading failed for package ‘weird’
    * removing ‘/Users/runner/work/weird-package/weird-package/check/weird.Rcheck/weird’
    
    1 error ✖ | 0 warnings ✔ | 0 notes ✔
    Error: Process completed with exit code 1.
    

    我知道我可以通过添加

    - name: Install XQuartz on macOS
      if: runner.os == 'macOS'
      run: brew install xquartz --cask
    

    到yaml,但这只能避免Github上的问题。当我提交给CRAN时,问题仍然存在。

    0 回复  |  直到 2 年前
        1
  •  0
  •   Azeem Rob Hyndman    2 年前

    记录在案,以防有人遇到同样的问题。

    事实证明,CRAN macos机器缺少Tcl/Tk库,任何需要它们的包都会导致错误。所以问题是CRAN的,而不是我的。

    GitHub Actions修复程序只是添加 xquartz 到山:

    - name: Install XQuartz on macOS
      if: runner.os == 'macOS'
      run: brew install xquartz --cask