Ubuntu 20.04 (Focal Fossa) 构建环境

本指南涵盖的内容 #

本指南概述了 Focal Fossa 环境中提供的软件包、工具和设置。

使用 Ubuntu 20.04 (Focal Fossa) #

要将您的构建路由到 Ubuntu 20.04 LTS,Focal,请将以下内容添加到您的 .travis.yml

dist: focal

与之前发布的镜像之间的差异 #

Travis CI Ubuntu 20.04,Focal,包含以下更改和改进

已删除第三方 apt 存储库 #

虽然在镜像预配过程中使用了第三方 apt 存储库,但它们已从构建镜像中全部删除。这有两个好处:a) 降低了无关干扰的风险,以及 b) 加速了 apt-get 更新。

要指定第三方 apt 存储库,您可以 使用 apt 附加组件添加源 并指定软件包。例如

dist: focal
addons:
  apt:
    sources:
      - sourceline: 'git-core/ppa'
    packages:
    - git-ppa

如果您在构建中依赖于这些存储库,您可以使用以下 source 行将它们取回

软件包
couchdb deb https://apache.bintray.com/couchdb-deb $(lsb_release -cs) main
docker deb https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable
google-chrome-stable deb http://dl.google.com/linux/chrome/deb/ stable main
git-ppa ppa:git-core/ppa
haskell ppa:hvr/ghc
mongodb deb https://repo.mongodb.org/apt/ubuntu $(lsb_release -cs)/mongodb-org/4.4 multiverse

默认情况下禁用的服务 #

在基于 Ubuntu 20.04 的环境中,为了加快启动时间并提高性能,我们默认禁用了所有服务。将您想要启动的任何服务添加到您的 .travis.yml

services:
  - mysql
  - redis

所有 Ubuntu 20.04 镜像共有的环境 #

以下版本的 Docker、版本控制软件和编译器存在于所有 Ubuntu 20.04 构建中,以及每个语言部分中更详细描述的更多特定于语言的软件。

所有非发行版提供的预安装软件均从官方版本安装 - 如果可用,则为预构建二进制文件,或者使用默认选项构建的源版本。对于预安装的语言解释器,如果语言可用,则使用标准版本管理器(如 rvm)。

版本控制 #

软件包 版本
git 2.45.2
git-lfs 2.9.2
hg 6.5.2
svn 1.13.0

编译器和构建工具链 #

软件包 版本
clang 16.0.0
llvm 18.0.0
cmake 3.29.0
gcc 9.4.0
ccache 3.7.7
shellcheck 0.10.0
shfmt 3.8.0

要在 Focal LXD 镜像的 ppc64le 架构下使用 IBM Advance Toolchain v14 编译器,请在您的 .travis.yml 中使用以下路径

  • GCC 编译器
    • 路径:/opt/at14.0/bin/gcc
    • 命令:/opt/at14.0/bin/gcc hello_world.c -o hello_world
  • g++ 编译器
    • 路径:/opt/at14.0/bin/g++
    • 命令:/opt/at14.0/bin/g++ hello_world.cpp -o hello_world
  • Go 编译器
    • 路径:/opt/at14.0/bin/gccgo
    • 命令:/opt/at14.0/bin/gccgo hello_world.go -o hello_world
  • Python
    • 首先,使用 python_interpreter.sh 脚本 编译 Python 3.8.0。
    • Python 解释器路径:/opt/python380-at14/python3.8
    • 构建 Python 命令:sudo sh python_interpreter.sh

要在 Focal LXD 镜像的 amd64 架构下使用 IBM Advance Toolchain v14 编译器,请在您的 .travis.yml 中使用以下路径

  • GCC 编译器
    • 路径:/opt/at14.0/bin/powerpc64le-linux-gnu-gcc
    • 命令:/opt/at14.0/bin/powerpc64le-linux-gnu-gcc hello_world.c -o hello_world
  • g++ 编译器
    • 路径:/opt/at14.0/bin/powerpc64le-linux-gnu-g++ 命令:/opt/at14.0/bin/powerpc64le-linux-gnu-g++ hello_world.cpp -o hello_world
  • Go 编译器
    • 路径:/opt/at14.0/bin/powerpc64le-linux-gnu-gccgo
    • 命令:/opt/at14.0/bin/powerpc64le-linux-gnu-gccgo hello_world.go -o hello_world
  • Python
    • 首先,使用 python_interpreter.sh 脚本 编译 Python 3.8.0。
    • Python 解释器路径:/opt/python380-amd64/python3.8
    • 构建 Python 命令:sudo sh python_interpreter.sh

Docker #

  • 已安装 Docker 26.1.4
  • docker-compose 2.27.1 也可用。

Ruby 支持 #

  • 预安装的 Ruby:2.5.92.7.63.3.0
  • 默认的 Ruby 是 3.3.0
  • 其他 Ruby 版本可以在构建时安装。

Python 支持 #

  • 支持的 Python 版本为:3.7 或更高版本,因为 2.7 已停止维护。
  • 当未显式设置语言版本时,将默认使用 Python 3.7.17
  • 以下 Python 版本已预安装
别名 版本
3.6 3.7.17
3.8 3.8.18
3.9 3.9.18
3.12 3.12.0

JavaScript 和 Node.js 支持 #

  • 对于指定 language: node_js 的构建,nvm 会在构建时自动更新到最新版本。对于其他构建,已选择镜像构建时的稳定版本,即 0.39.7
  • 以下 NodeJS 版本已预安装:4.9.16.17.18.17.010.24.112.22.1214.21.316.1516.20.218.20.320.14.0

Go 支持 #

  • 预安装的 Go:1.11.1

  • 其他 Go 版本可以通过使用 go: 键指定语言版本在构建时安装。

JVM (Clojure、Groovy、Java、Scala) 支持 #

  • 预安装的 JVM:在 x86 上安装了 openjdk8openjdk9openjdk10openjdk11,默认值为 openjdk11

  • 如果可用,可以通过指定 jdk 获取其他 JDK,包括 Oracle 的 JDK。

  • 下表总结了预安装的 JVM 工具版本

软件包 版本
gradle 8.3
maven 3.9.4
groovy 3.0.17

Perl 支持 #

  • Focal 上的默认版本是 5.32.0
  • 支持的版本 5.325.33 可以通过使用 perl: 键安装。
  • TAP::Harness v3.42 和 cpanm (App::cpanminus) 版本 1.7044 也已预安装。

PHP 支持 #

  • 对于动态运行时选择,phpenv 可用。
  • 以下 PHP 版本已预安装
别名 版本
7.4 7.4.6

数据库和服务 #

以下服务和数据库已预安装,但默认情况下不运行。要在构建中使用其中一个,请将其添加到 travis.yml 中的服务键中

服务 版本
mongodb 4.4.29
mysql 8.0.37
redis 7.2.5
postgresql 13.15

其他 Ubuntu Linux 构建环境 #

您可以查看Ubuntu Linux 概述页面,了解您可以使用的不同 Ubuntu Linux 构建环境。