Skip to content

Commit a0cf5af

Browse files
Update Ubuntu 18.04 Build Environment docs
1 parent 47b6ae7 commit a0cf5af

File tree

1 file changed

+101
-182
lines changed

1 file changed

+101
-182
lines changed

user/reference/bionic.md

Lines changed: 101 additions & 182 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
```markdown
12
---
23
title: The Ubuntu 18.04 Build Environment
34
layout: en
@@ -7,7 +8,7 @@ layout: en
78

89
## What This Guide Covers
910

10-
This guide provides an overview of the packages, tools and settings available in the Bionic environment.
11+
This guide provides an overview of the packages, tools, and settings available in the Bionic environment.
1112

1213
## Using Ubuntu 18.04 (Bionic Beaver)
1314

@@ -18,224 +19,142 @@ dist: bionic
1819
```
1920
{: data-file=".travis.yml"}
2021

22+
## Environment Common to All Ubuntu 18.04 Images
2123

22-
## Differences from the previous release images
24+
The following versions of Docker, version control software, compilers, and language support are available on all Ubuntu 18.04 builds. All preinstalled software not provided by the distro is installed from an official release — either a prebuilt binary if available, or a source release built with default options.
2325

24-
Travis CI Ubuntu 18.04, Bionic, includes the following changes and improvements:
26+
### Version Control
2527

26-
### Third party apt-repositories removed
27-
28-
While third party apt-repositories are used during the image provisioning, they are all removed from the Bionic build image. This has two benefits; a) reduced risk of unrelated interference and b) faster apt-get updates.
29-
30-
To specify a third party apt-repository, you can [add the source with the apt addon](/user/installing-dependencies/#adding-apt-sources) and specify the packages. For example:
31-
32-
```yaml
33-
dist: bionic
34-
addons:
35-
apt:
36-
sources:
37-
- ppa:chris-lea/redis-server
38-
packages:
39-
- redis-tools
40-
- redis-server
41-
```
42-
{: data-file=".travis.yml"}
43-
44-
If you depend on these repositories in your build, you can use the following `source` line to get them back:
45-
46-
| package | source |
47-
|:---------------------|:-----------------------------|
48-
| couchdb | `https://couchdb.apache.org/repo/` |
49-
| docker | `docker` |
50-
| google-chrome-stable | `google-chrome` |
51-
| git-lfs | `github-git-lfs-bionic` |
52-
| git-ppa | `ppa:git-core/ppa` |
53-
| haskell | `ppa:hvr/ghc` |
54-
| mongodb | `mongodb-4.4-bionic` |
55-
| pollinate | `ppa:pollinate/ppa` |
56-
{: style="width: 80%" }
57-
58-
### Services disabled by default
59-
60-
On the Ubuntu 18.04 based environment, to speed up boot time and improve performance we've disabled all services by default.
61-
Add any services that you want to start to your `.travis.yml`:
62-
63-
64-
```yaml
65-
services:
66-
- mysql
67-
- redis
68-
```
69-
{: data-file=".travis.yml"}
70-
71-
## Environment common to all Ubuntu 18.04 images
72-
73-
The following versions of Docker, version control software and compilers are present on all Ubuntu 18.04 builds, along with more language specific software described in more detail in each language section.
74-
75-
All preinstalled software not provided by distro is installed from an official release --
76-
either a prebuilt binary if available, or a source release built with default options.
77-
For preinstalled language interpreters, a standard version manager like `rvm` is used if available for the language.
78-
79-
### Version control
80-
81-
| package | version |
82-
|:--------|:---------|
83-
| git | `2.43.0` |
84-
| git-lfs | `2.3.4` |
85-
| hg | `5.3` |
86-
| svn | `1.9.7` |
28+
| Package | Version |
29+
|:-------------|:----------|
30+
| **git** | `2.43.0` |
31+
| **git-lfs** | `2.3.4` |
32+
| **hg** | `5.3` |
33+
| **svn** | `1.9.7` |
8734
{: style="width: 30%" }
8835

89-
### Compilers and Build toolchain
36+
### Compilers and Build Toolchain
9037

91-
* clang and llvm 16
92-
* cmake 3.26.3
93-
* gcc 7.5.0
94-
* ccache 3.4.1
95-
* shellcheck 0.10.0
96-
* shfmt 3.8.0
97-
98-
To use the IBM Advance Toolchain v14 compilers under `ppc64le` architecture in Focal LXD image, use the following paths in your `.travis.yml`:
99-
100-
- GCC compiler
101-
- Path: `/opt/at14.0/bin/gcc`
102-
- Command: `/opt/at14.0/bin/gcc hello_world.c -o hello_world`
103-
104-
- g++ compiler
105-
- Path: `/opt/at14.0/bin/g++`
106-
- Command: `/opt/at14.0/bin/g++ hello_world.cpp -o hello_world`
38+
| Tool | Version |
39+
|:---------------|:-----------|
40+
| **clang** | `18.1.8` |
41+
| **cmake** | `3.26.3` |
42+
| **gcc** | `7.5.0` |
43+
| **ccache** | `3.4.1` |
44+
| **ShellCheck** | `0.10.0` |
45+
| **shfmt** | `3.8.0` |
46+
{: style="width: 30%" }
10747

108-
- Go compiler
109-
- Path: `/opt/at14.0/bin/gccgo`
110-
- Command: `/opt/at14.0/bin/gccgo hello_world.go -o hello_world`
48+
### Docker
11149

112-
- Python
113-
- First, compile Python 3.8.0 using the `python_interpreter.sh script`.
114-
- Python Interpreter Path: `/opt/python380-at14/python3.8`
115-
- Build Python Command: `sudo sh python_interpreter.sh`
50+
| Package | Version |
51+
|:-------------------|:----------------------------------|
52+
| **Docker** | `24.0.2` (build cb74dfc) |
53+
| **docker-compose** | `v2.20.3` |
54+
{: style="width: 30%" }
11655

117-
To use the IBM Advance Toolchain v14 compilers under `amd64` architecture in Focal LXD image, use the following paths in your `.travis.yml`:
56+
### Ruby Support
11857

119-
- GCC compiler
120-
- Path: `/opt/at14.0/bin/powerpc64le-linux-gnu-gcc`
121-
- Command: `/opt/at14.0/bin/powerpc64le-linux-gnu-gcc hello_world.c -o hello_world`
58+
* **Pre-installed Ruby**:
59+
* `ruby 3.3.5`
60+
* Other Ruby versions (e.g. 2.7.x, 3.1.x) can be installed during build time.
12261

123-
- g++ compiler
124-
- Path: `/opt/at14.0/bin/powerpc64le-linux-gnu-g++`
125-
Command: `/opt/at14.0/bin/powerpc64le-linux-gnu-g++ hello_world.cpp -o hello_world`
62+
### Python Support
12663

127-
- Go compiler
128-
- Path: `/opt/at14.0/bin/powerpc64le-linux-gnu-gccgo`
129-
- Command: `/opt/at14.0/bin/powerpc64le-linux-gnu-gccgo hello_world.go -o hello_world`
64+
* **Supported Python versions:** 3.6 or higher.
13065

131-
- Python
132-
- First, compile Python 3.8.0 using the `python_interpreter.sh script`.
133-
- Python Interpreter Path: `/opt/python380-amd64/python3.8`
134-
- Build Python Command: `sudo sh python_interpreter.sh`
66+
The following Python versions are directly callable:
13567

136-
### Docker
68+
| Alias | Version |
69+
|:---------|:----------|
70+
| **3.6** | `3.6.9` |
71+
| **3.7** | `3.7.17` |
72+
| **3.8** | `3.8.18` |
73+
| **3.12** | `3.12.4` |
74+
75+
### JavaScript and Node.js Support
13776

138-
* Docker 24.0.2 is installed
139-
* docker-compose 2.18.1
77+
* For builds specifying `language: node_js`, `nvm` is automatically updated to the latest version at build time.
78+
* The default Node.js version available on the machine is:
79+
* `v16.15.1`
80+
* Additional Node.js versions are available through nvm if configured.
14081

141-
## Ruby support
82+
### Go Support
14283

143-
* Pre-installed Rubies: `2.5.9`, `2.7.6` and `3.3.0`.
144-
* The default ruby is `3.3.0`.
145-
* Other ruby versions can be installed during build time.
84+
* **Pre-installed Go:**
85+
* `go version go1.23.6 linux/amd64`
86+
Additional Go versions can be installed during build time by specifying the language version with the `go:` key.
14687

147-
## Python support
88+
### JVM (Clojure, Groovy, Java, Scala) Support
14889

149-
* Supported Python versions: `3.6` or higher.
150-
* Python `3.12.0` will be used when no language version is explicitly set.
151-
* The following Python versions are preinstalled:
90+
* **Pre-installed JVMs:**
91+
* Default Java:
92+
* `openjdk version "11.0.21" 2023-10-17 LTS`
93+
* Other JDKs, including Oracle's, can be acquired if available by specifying the `jdk` key.
94+
* The following JVM tooling is preinstalled:
15295

153-
| alias | version |
154-
| :----- | :------- |
155-
| 3.6 | 3.6.15 |
156-
| 3.7 | 3.7.17 |
157-
| 3.8 | 3.8.18 |
158-
| 3.12 | 3.12.0 |
96+
| Package | Version |
97+
|:-----------|:----------|
98+
| **Gradle** | `8.3` |
99+
| **Maven** | `3.9.4` |
100+
| **Groovy** | `4.0.15` |
159101
{: style="width: 30%" }
160102

161-
If you're getting errors about PyPy `pypy is not installed; attempting download`, use one of the more recent versions.
162-
163-
## JavaScript and Node.js support
164-
165-
* For builds specifying `language: node_js`, `nvm` is automatically updated to the latest version at build time. For other builds, the stable version at image build time has been selected, which is 0.10.48.
166-
* The following NodeJS versions are preinstalled: `20.14.0`, `18.20.3`, `16.20.2`, `16.15.1`, `16.15`, `12.22.12`, `10.24.1`, `8.17.0`, `6.17.1` and `4.9.1`.
167-
168-
## Go support
103+
### Perl Support
169104

170-
* Pre-installed Go: `1.18.1`
105+
* The default Perl version on Ubuntu 18.04 is provided by the system.
106+
* Additional Perl versions can be installed using the `perl:` key.
107+
* Tools like `TAP::Harness` and `cpanm` are also available.
171108

172-
* Other Go versions can be installed during build time by specifying the language versions with the `go:`-key.
109+
### PHP Support
173110

174-
## JVM (Clojure, Groovy, Java, Scala) support
175-
176-
* Pre-installed JVMs: `openjdk8`, `openjdk9`, `opnejdk10` and `openjdk11` on x86, default
177-
is `openjdk11`.
111+
* For dynamic runtime selection, `phpenv` is available.
112+
* The preinstalled PHP version on this image is:
113+
* `PHP 7.2.27` (CLI)
114+
* If a different version is required, it can be installed during the build.
178115

179-
* Other JDKs, including Oracle's, can be acquired if available by specifying `jdk`.
116+
#### Extensions for PHP 7.2 and Higher
180117

181-
* The following table summarizes the Pre-installed JVM tooling versions:
118+
The following extensions are preinstalled for PHP builds:
182119

183-
| package | version |
184-
|:--------|:--------|
185-
| gradle | 8.3 |
186-
| maven | 3.9.4 |
187-
| groovy | 4.0.15 |
188-
{: style="width: 30%" }
120+
- [apcu.so](http://php.net/apcu)
121+
- [memcached.so](http://php.net/memcached) (Not preinstalled for > PHP8.0)
122+
- [mongodb.so](https://php.net/mongodb)
123+
- [amqp.so](http://php.net/amqp)
124+
- [zmq.so](http://zeromq.org/bindings:php)
125+
- [xdebug.so](http://xdebug.org)
126+
- [redis.so](http://pecl.php.net/package/redis)
189127

190-
## Perl support
128+
> **Note:** With the exception of xdebug, these extensions are not enabled by default.
191129
192-
* Default version on Bionic is `5.33`
193-
* Supported versions `5.32` and `5.33` can be installed by using the `perl:`-key.
194-
* `TAP::Harness` v3.38 and `cpanm` (App::cpanminus) version 1.7044 are also pre-installed.
130+
### Databases and Services
195131

196-
## PHP support
132+
The following services and databases are preinstalled but do not run by default. To use any in your build, add the service to your `.travis.yml`:
197133

198-
* For dynamic runtime selection, `phpenv` is available.
199-
* The following PHP versions are preinstalled:
200-
201-
| alias | version |
202-
| :----- | :------- |
203-
| 7.1 | 7.1.33 |
204-
| 7.2 | 7.2.27 |
205-
| 7.3 | 7.3.14 |
206-
| 7.4 | 7.4.2 |
134+
| Service | Version / Notes |
135+
|:---------------|:------------------------------------------------------------------------|
136+
| **MongoDB** | `v4.4.29` |
137+
| **MySQL** | `5.7.42` |
138+
| **Redis** | `7.2.5` |
139+
| **PostgreSQL** | *`psql` is not installed by default. Install using `apt-get install postgresql-client-common` if needed.* |
207140
{: style="width: 30%" }
208141

209-
### Extensions
210-
211-
#### PHP 7.1 and higher
142+
### Android Support
212143

213-
The following extensions are preinstalled for PHP 7.1 and higher builds:
144+
For Android builds, the environment provides comprehensive support with the following pre-installed components:
214145

215-
- [apcu.so](http://php.net/apcu)
216-
- [memcached.so](http://php.net/memcached) (Not preinstalled for > PHP8.0)
217-
- [mongodb.so](https://php.net/mongodb)
218-
- [amqp.so](http://php.net/amqp)
219-
- [zmq.so](http://zeromq.org/bindings:php)
220-
- [xdebug.so](http://xdebug.org)
221-
- [redis.so](http://pecl.php.net/package/redis)
146+
- **Android SDK Components** – Installed components include:
147+
- `tools`
148+
- `platform-tools`
149+
- `build-tools;30.0.0`
150+
- `platforms;android-30`
151+
- `extras;google;google_play_services`
152+
- `extras;google;m2repository`
153+
- `extras;android;m2repository`
222154

223-
Please note that these extensions are not enabled by default with the exception
224-
of xdebug.
225-
226-
## Databases and services
227-
228-
The following services and databases are preinstalled but but do not run by default.
229-
To use one in your build, add it to the services key in your `travis.yml` :
230-
231-
| service | version |
232-
|:-----------|:---------------|
233-
| mongodb | 4.4.29 |
234-
| mysql | 5.7.42 |
235-
| redis | 7.2.5 |
236-
| postgresql | 9.3 9.4 9.5 9.6 10 11 |
237-
{: style="width: 30%" }
155+
To use Android, specify `language: android` in your `.travis.yml` and refer to the [Android Build Environment Guide](/user/languages/android/) for additional configuration details.
238156

239157
## Other Ubuntu Linux Build Environments
240158

241-
You can have a look at the [Ubuntu Linux overview page](/user/reference/linux/) for the different Ubuntu Linux build environments you can use.
159+
For details on other Ubuntu Linux build environments available on Travis CI, please refer to the [Ubuntu Linux overview page](/user/reference/linux/).
160+
```

0 commit comments

Comments
 (0)