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.9
、2.7.6
和3.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.1
、6.17.1
、8.17.0
、10.24.1
、12.22.12
、14.21.3
、16.15
、16.20.2
、18.20.3
和20.14.0
。
Go 支持 #
-
预安装的 Go:
1.11.1
。 -
其他 Go 版本可以通过使用
go:
键指定语言版本在构建时安装。
JVM (Clojure、Groovy、Java、Scala) 支持 #
-
预安装的 JVM:在 x86 上安装了
openjdk8
、openjdk9
、openjdk10
和openjdk11
,默认值为openjdk11
。 -
如果可用,可以通过指定
jdk
获取其他 JDK,包括 Oracle 的 JDK。 -
下表总结了预安装的 JVM 工具版本
软件包 | 版本 |
---|---|
gradle | 8.3 |
maven | 3.9.4 |
groovy | 3.0.17 |
Perl 支持 #
- Focal 上的默认版本是
5.32.0
- 支持的版本
5.32
和5.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 构建环境。