在Travis中解决因TeXLive版本不兼容导致的测试失败问题

85次阅读
没有评论

问题描述

在编写一个R包并使用Travis进行持续集成时,遇到了一个问题:在macOS上的测试失败,因为系统上安装了较新版本的TeXLive,并且无法安装inconsolata字体来构建文档。Travis的日志显示了TeXLive版本不兼容的错误,并且R也无法构建文档。

解决方案

请注意以下操作可能受到TeXLive版本差异的影响,如果出现问题请根据提示进行调整。

方案1:等待CTAN镜像更新

这个问题是由于CTAN镜像尚未更新引起的。在Travis的R社区论坛中有相关讨论。根据论坛中的建议,问题可能与TeXLive-2019版本切换有关,因为LaTeX包管理器在寻找inconsolata时似乎在仓库中找不到。

此问题可能会在CTAN镜像更新后自然解决。如果问题没有解决,你可以考虑采取以下操作。

方案2:降级TeXLive版本(仅适用于macOS)

在Travis的配置文件.travis.yml中,通过强制使用较旧版本的TeXLive来解决问题。以下是具体步骤:

  1. 打开你的项目的.travis.yml配置文件。
  2. 找到osx_image字段,并将其设置为对应的较旧版本,这里我们以macOS 10.12为例。具体版本与XCode版本对应关系可以参考Travis的官方文档

示例:

osx_image: xcode9.2

通过设置osx_image为适当的版本,你可以强制Travis使用特定版本的macOS和对应的TeXLive版本,从而绕过因TeXLive版本不兼容导致的问题。

方案3:手动安装inconsolata字体

另一种方法是在Travis构建过程中手动安装inconsolata字体。这种方法需要你在.travis.yml文件中添加适当的命令来安装字体,但由于CTAN镜像问题可能会有限制。

示例:

before_install:
  - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
      brew cask install basictex;
      sudo tlmgr update --self;
      sudo tlmgr update --all;
      sudo tlmgr install inconsolata upquote courier courier-scaled helvetictlmgr;
      sudo tlmgr install collection-fontsrecommended;
    fi

请注意,以上方案中的命令可能会因为不同的Travis环境和TeXLive版本而有所不同。根据你的具体情况进行调整。

方案4:考虑等待问题解决

如果CTAN镜像更新后仍无法解决问题,建议继续关注Travis和TeXLive的官方社区,看是否有新的解决方案被提出。

总结

在Travis中解决由于TeXLive版本不兼容导致的测试失败问题可能需要等待CTAN镜像更新,或者通过降级TeXLive版本、手动安装字体等方式来解决。根据你的情况,选择适合的解决方案,以确保你的持续集成能够正常运行。

正文完