はじめに
モバミちゃん...ラーメンだよ... nikkieです
Today(※最近) I learnedです。
最近は『ハイパーモダンPython』きっかけの学びに満ち溢れています!
目次
- はじめに
- 目次
- 『ハイパーモダンPython』より、UbuntuにPythonをインストール
- add-apt-repositoryは非推奨と知ったので、代替手段の素振り
- Dockerfile
- 終わりに
『ハイパーモダンPython』より、UbuntuにPythonをインストール
Ubuntuのメインリポジトリには1つのバージョン(最新)のPythonしかないということで、以下の方法が案内されます。
add-apt-repository
コマンドを使えるようにするため、software-properties-commonをインストールadd-apt-repository
コマンドでdeadsnakes PPAを追加- python3.x-full をインストール
add-apt-repository
でdeadsnakesを追加する方法は、tokibitoさんの記事にも見つかりました
Ubuntuイメージで検証します(DockerはmacOSにRancherで入れています)
% docker --version Docker version 27.1.1-rd, build cdc3063 % docker run --rm -it --platform linux/x86_64 ubuntu:24.04 bash
# apt update # apt search python3 # (以下は出力の抜粋) python3/noble-updates 3.12.3-0ubuntu2 amd64 python3-dev/noble-updates 3.12.3-0ubuntu2 amd64 # apt install -y software-properties-common # タイムゾーンの設定についてインタラクティブな質問があります(Asia/Tokyo) # add-apt-repository ppa:deadsnakes/ppa # Enterを押す必要あり(-y指定すればよい) # apt update # apt search python3 (python3.7 ~ 3.13 が見えました) (| grep python3..-full などで古いPythonのfullがあることも確認できます)
add-apt-repositoryは非推奨と知ったので、代替手段の素振り
こちらの記事を元にします
https://launchpad.net/ を検索して、deadsnakesを見つけます1
インストールしたいパッケージのページ https://launchpad.net/~deadsnakes/+archive/ubuntu/ppa へ(「Personal package archives」の「New Python Versions」をクリック)。 「Adding this PPA to your system」が一致しているのでよさそうです
「Technical details about this PPA」からFingerprintを控えます。
記事で続く手順はスクリプト化しました
#!/usr/bin/env bash set -euo pipefail fingerprint=F23C5A6CF475977595C89F51BA6932366A755776 repo=deadsnakes subrepo=ppa ubuntu_version=$(cat /etc/os-release | grep VERSION_CODENAME | sed s/VERSION_CODENAME=//) curl -sS "http://keyserver.ubuntu.com:11371/pks/lookup?op=get&search=0x${fingerprint}" > "./${repo}.asc" cat "./${repo}.asc" | gpg --dearmor -o "/etc/apt/keyrings/${repo}.gpg" echo "deb [signed-by=/etc/apt/keyrings/${repo}.gpg] http://ppa.launchpad.net/${repo}/${subrepo}/ubuntu ${ubuntu_version} main" | tee -a /etc/apt/sources.list.d/${repo}.list
試していきます
% docker run --rm -it -v $PWD:/work -w /work --platform linux/x86_64 ubuntu:24.04 bash
# apt update && apt install -y curl gnupg # ./script.sh deb [signed-by=/etc/apt/keyrings/deadsnakes.gpg] http://ppa.launchpad.net/deadsnakes/ppa/ubuntu noble main # apt update && apt install -y python3.10-full # python3.10 -V Python 3.10.15
Dockerfile
代替手段をDockerfileにまとめました2
例 docker build --build-arg python_version=3.10 -t ubuntu-python:3.10 .
終わりに
UbuntuのDockerイメージに、非推奨のadd-apt-repositoryに代わる方法でdeadsnakes PPAを追加し、古いPythonのバージョンをインストールしました。
背景が語られている記事、積ん読です
- https://launchpad.net/+search?field.text=deadsnakes のExact matches↩
- インタラクティブを無効にする設定 ↩