AWS / PHP / Python ちょいメモ

amazon web service , PHP, Python を使ったときのメモ。日本語でググってもわからなかった事を中心に。

Python 3 の Ubuntu Server でのサポート履歴

先日実施した、Ubuntu Server のアップグレード。

過去の記憶が少しもどってきて、Apache 2.2 から 2.4に変わった時に、軒並みサイト落ちたなとか思い出してきたw

18.04 までいくか? 20.04 まで目指しちゃうか?を決めるために、リリースノートを参考に、デフォルトでサポートしている各種バージョンを表にしてみました。

今回気になったのは Pythonまわりなので、Python厚めで。

※4/28追記あり

Ubuntu Server

各LTS での デフォルト状態

基本的には、すべて ReleaseNotes での記載を引っ張ってきました。

プロジェクト名にリンク貼っておきます。


Ubuntu 14.04 (Trusty Tahr) 16.04 (Xenial Xerus) 18.04 (Bionic Beaver) 20.04 (Focal Fossa)
Python2 Python 2.7 インストールなし インストールなし インストールなし
Python3 Python 3.4 Python 3.5 Python 3.6.9 # Python 3.8.2 #
PHP 5.5 7.0 7.2.24 # 7.4.3 #
Apache 2.4 2.4.x ? 2.4.29 with HTTP/2 2.4.41 # with TLSv1.3
MySQL 5.5 5.7 5.7.29 # 8.0.19 #


リリースノートだけでは不足していた部分は、次のようにして情報を追記しました。

  • ? のところは前後からの推測
  • * の部分は、lanchpad で適当に調べた結果
  • # 4/28追記 : SoftwareDesign 2020/05 号 第3特集 の情報で補強


Python2 の「インストールなし」については、このあと個別に説明。

Python 2.7

Python 2.7 は、16.04 の新規インストールからは、デフォルトでインストールされなくなってました。

  • 16.04
    • また、vim パッケージが Python 3 でビルドされ、Python2 を要求するプラグインは動作しなくなる。
  • 18.04
    • Python2パッケージがmain リポジトリに存在するのも最後になる
  • 20.04
    • Python2パッケージも universe リポジトリに移動した
    • ただし、前バージョンからのアップグレードの場合には、 /usr/bin/python は Python2.7を参照している。
    • python-is-python3 パッケージを使うと、/usr/bin/python の参照先が Python3 に変わる。


リポジトリについては、こちらをみて学びました。そうか4つもあったのか。

Python 3

Python3 もすでに 3.8 の時代だし、それぞれのサポート状況を確認してみた。

Status of Python branches

Branch Schedule Status First release End-of-life
3.8 PEP 569 bugfix 2019-10-14 2024-10
3.7 PEP 537 bugfix 2018-06-27 2023-06-27
3.6 PEP 494 security 2016-12-23 2021-12-23
3.5 PEP 478 security 2015-09-13 2020-09-13


ぬぅ、Python 3.5 で今年の秋なのか。

となると、 3.6 まではあげておきたいところ。

公式パッケージなら

古いバージョンでもUbuntu公式サポートであれば、バックポートでセキュリティFIXは提供されると思います。

でも Django などのフレームワーク使ってると、フレームワークの周辺パッケージの要件に合わない可能性があがったり。

なるだけ新し目のサポートバージョンに変えておくのが吉と思います。


要点解説 (4/28追記)

僕の好きな Software Design 2020年5月号|技術評論社 ななめ読みしてたら、特集されてました!

  • 第3特集 Ubuntu 20.04 LTS要点解説 デスクトップとサーバで何が変わった?

令和最初のLTSリリースとなるUbuntu 20.04 LTS。第1章では,そのデスクトップ版とフレーバーの変更点を解説し,第2章ではサーバ関連の変更点をメインに紹介します。Ubuntu 20.04 LTS Serverでは,安定性を重要視しつつ最新のコンテナ機能やソフトウェアを取り込んでいるバランスのとれたリリースとなりそうです。

毎号特集読んでいたのを、思い出しました。今号はLTSリリースということで10ページのボリュームです!

個人的に見逃してたのは Snapパッケージ と iptables から nftables への移行の動きですね。

ユーザー的には systemd 的な大きな変更?ではないかと思って読みました。

現段階の方針 (4/28更新)

18.04 まではあげようと思いますの方針は変わらず。

20.04 は MySQL が 8 にかわっちゃうようなので、DB周りの調査してからが吉な気がしました。

また、SD 2020/05 の特集を執筆者 あわしろいくや さんのオススメ情報としても、ポイントリリースを待ってから使うのが良いだろうとの話も、納得。20.04 LTS は、次のポイントリリース 20.04.01 以降だな。

その他

これだけ手厚くLTSをリリースしてくれているのだから、恩恵に乗っかるのがよいなって気がしました。

まずは目の前の 18.04 化だな!