问题描述
在编写一个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来解决问题。以下是具体步骤:
- 打开你的项目的
.travis.yml
配置文件。 - 找到
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版本、手动安装字体等方式来解决。根据你的情况,选择适合的解决方案,以确保你的持续集成能够正常运行。