Ubuntu 16.04 から Ubuntu 20.04 への移行
1+ year ago1 min read
サポートされているイメージへの移行
提供が終了するイメージから現在サポートされているイメージへの移行は簡単に行えます。 新しいイメージを使ってパイプラインを実行するために必要な作業は、プロジェクトに 下記の変更が適用されるどうかによって異なります。 Ubuntu 16.04 イメージと 20.04 イメージを使った場合のそれぞれの例を紹介します。
サポートされているイメージ (およびタグ) は、 Developer Hubでお探しください。
注: このガイドは、弊社やお客様の移行エクスペリエンスの共有によって得られた追加情報とヒントが随時記載され更新されます。
変更点
Ubuntu 16.04 と 20.04 では変更点が多く、移行する前に把握しておく必要があります。 変更の多くは Canonical 社 (Ubuntu を提供) によるものですが、 CircleCI でもプリインストールしたソフトウェアへの変更を行なっています。 それぞれの変更点を見ていきましょう。
Ubuntu の変更点
- カーネル: Linux カーネルは v4.4 から v5.11 にバージョンアップしました。
- Python : Python v2 は Ubuntu からデフォルトでインストールされなくなりました。 CircleCI では現在もインストールし、バージョン管理は Pyenv 経由で行なっています。
- OpenSSH : OpenSSH は v8.2 にアップデートされています。 この新しいバージョンは、 GitHub のサポート終了による影響は受けません。
- Ubuntu では 1024 ビット以下の RSA キーは使用できなくなりました。
- GNU Toolchain
- glibc は v2.31 にアップデートされています。
- binutils は v2.26 にアップデートされています。
- GCC は v9.3 にアップデートされています。
- Apt は v1.2 にアップデートされています。
- Nginx は v1.18 にアップデートされています。
- nginx-core はデフォルトでレガシー geoip モジュールが有効になっている状態でリリースされなくなりました。
- Apache は TLSv1.3 をサポートするようにビルドされています。
- Apache はバージョン 2.4.29 にアップデートされています。 また、HTTP/2 のサポートも有効化されました。
- LXD は v3.0 にアップデートされています。
- PHP は v7.4 にアップデートされています。
- Perl 5.30
- MySQL は v5.7 にアップデートされています。
- Snap & Snapcraft : Snap パッケージの実行とビルドに対応しています。
- Java : 現在のデフォルトは OpenJDK v11 ですが、CircleCI にはより多くのバージョンがプリインストールされています。
- OpenSSL は v1.1.0 から v1.1.1 にアップデートされ、TLS v1.3 が有効化されました。
- netplan は IPv6 のプライバシー拡張機能をサポートしています。
- netplan によりブリッジ用の IP を持たないデバイスを起動できます。
- デフォルトの DNS リゾルバは、systemd-resolved です。
- Bind 9.16
- SysV. から SystemD に移行します。
- gnupg2 より gpg バイナリが提供されます。
- nipd から Chrony v3.5 に移行します。
- Wireguard VPN をサポート
- rustc 1.41
- HAProxy 2.0
- PostgreSQL 12
CircleCI ソフトウェアの変更点
ソフトウェア | Ubuntu-16.04 | Ubuntu 20.04 ( 2022年 1月 Q1) |
---|---|---|
AWS CLI | 1.19.60 | 2.4.6 |
Google Chrome | 90.0.4430.93 | 96.0.4664.110 |
Docker | 19.03.15 | 20.10.11 |
Docker Compose | 1.29.1 | 1.29.2 |
Firefox | 88.0 | 95.0.1 |
GCP CLI | 337.0.0 | 365.0.0 |
Go | 1.16.3 | 1.17.3 |
Gradle | 6.5 | 7.3.2 |
Heroku | 7.53.0 | 7.59.2 |
jq | 1.5 | 1.6 |
Leiningen | 2.9.3 | 2.9.8 |
Maven | 3.6.3 | 3.8.4 |
Node.js | 12.22.1 | 16.13.0 |
npm | ー | 8.3.0 |
OpenJDK | 1.8 | 11.0.13 |
Python2 | 2.7.18 | 3.9.4 |
Python3 | ー | 3.9.7 |
Ruby | 3.0.1 | 3.0.2 |
SBT | 1.3.9 | 1.5.8 |
yq | ー | 4.13.5 |