はじめに
Application Stream(AppStream)を利用してRHEL8にPython 3.8をインストール
参考:RHEL8のパッケージ構成 - BaseOSとApplication Stream - 赤帽エンジニアブログ
サポート
本手法で導入した場合、Red Hat Enterprise Linux 8 Application Streams Life Cycle - Red Hat Customer Portalより、2023-05がEOLだと思われる。
それ以降に報告された脆弱性や不具合への対応は実施されない可能性がある。
LOG
インストール
# cat /etc/redhat-release
Red Hat Enterprise Linux release 8.2 (Ootpa)
# yum install -y python38
... 略
各種確認
# which python{,2,3}
/usr/bin/which: no python in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)
/usr/bin/which: no python2 in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)
/usr/bin/python3
# ll /usr/bin/python*
lrwxrwxrwx. 1 root root 25 May 1 15:00 /usr/bin/python3 -> /etc/alternatives/python3
-rwxr-xr-x. 1 root root 7648 Mar 9 14:05 /usr/bin/python3.8
# python3 -V
Python 3.8.0
# yum module info python38
Updating Subscription Management repositories.
Last metadata expiration check: 0:17:37 ago on Fri 01 May 2020 02:47:14 PM EDT.
Name : python38
Stream : 3.8 [d][e][a]
Version : 8020020200309184510
Context : bbc63041
Architecture : x86_64
Profiles : build, common [d]
Default profiles : common
Repo : rhel-8-for-x86_64-appstream-rpms
Summary : Python programming language, version 3.8
Description : This module gives users access to the internal Python 3.8 in RHEL8, as
: well as provides some additional Python packages the users might need.
: In addition to these you can install any python3-* package available
: in RHEL and use it with Python from this module.
Requires : platform:[el8]
Artifacts : Cython-0:0.29.14-4.module+el8.2.0+5234+f98739b6.src
: Cython-debugsource-0:0.29.14-4.module+el8.2.0+5234+f98739b6.x86_64
: PyYAML-0:5.1.2-6.module+el8.2.0+5234+f98739b6.src
: PyYAML-debugsource-0:5.1.2-6.module+el8.2.0+5234+f98739b6.x86_64
: babel-0:2.7.0-10.module+el8.2.0+5234+f98739b6.src
: mod_wsgi-0:4.6.8-3.module+el8.2.0+5234+f98739b6.src
: numpy-0:1.17.3-5.module+el8.2.0+5978+503155c0.src
: numpy-debugsource-0:1.17.3-5.module+el8.2.0+5978+503155c0.x86_64
: python-PyMySQL-0:0.9.3-3.module+el8.2.0+5234+f98739b6.src
: python-asn1crypto-0:1.2.0-3.module+el8.2.0+5234+f98739b6.src
: python-cffi-0:1.13.2-3.module+el8.2.0+5234+f98739b6.src
: python-cffi-debugsource-0:1.13.2-3.module+el8.2.0+5234+f98739b6.x86_64
: python-chardet-0:3.0.4-19.module+el8.2.0+5234+f98739b6.src
: python-cryptography-0:2.8-3.module+el8.2.0+5234+f98739b6.src
: python-cryptography-debugsource-0:2.8-3.module+el8.2.0+5234+f98739b6.x86_64
: python-idna-0:2.8-6.module+el8.2.0+5234+f98739b6.src
: python-jinja2-0:2.10.3-4.module+el8.2.0+5234+f98739b6.src
: python-lxml-0:4.4.1-4.module+el8.2.0+5234+f98739b6.src
: python-lxml-debugsource-0:4.4.1-4.module+el8.2.0+5234+f98739b6.x86_64
: python-markupsafe-0:1.1.1-6.module+el8.2.0+5234+f98739b6.src
: python-markupsafe-debugsource-0:1.1.1-6.module+el8.2.0+5234+f98739b6.x86_64
: python-ply-0:3.11-8.module+el8.2.0+5234+f98739b6.src
: python-psutil-0:5.6.4-3.module+el8.2.0+5234+f98739b6.src
: python-psutil-debugsource-0:5.6.4-3.module+el8.2.0+5234+f98739b6.x86_64
: python-psycopg2-0:2.8.4-4.module+el8.2.0+5234+f98739b6.src
: python-psycopg2-debugsource-0:2.8.4-4.module+el8.2.0+5234+f98739b6.x86_64
: python-pycparser-0:2.19-3.module+el8.2.0+5234+f98739b6.src
: python-pysocks-0:1.7.1-4.module+el8.2.0+5234+f98739b6.src
: python-requests-0:2.22.0-9.module+el8.2.0+5234+f98739b6.src
: python-six-0:1.12.0-9.module+el8.2.0+5234+f98739b6.src
: python-urllib3-0:1.25.7-4.module+el8.2.0+5234+f98739b6.src
: python-wheel-0:0.33.6-5.module+el8.2.0+5978+503155c0.src
: python38-0:3.8.0-6.module+el8.2.0+5978+503155c0.src
: python38-0:3.8.0-6.module+el8.2.0+5978+503155c0.x86_64
: python38-Cython-0:0.29.14-4.module+el8.2.0+5234+f98739b6.x86_64
: python38-Cython-debuginfo-0:0.29.14-4.module+el8.2.0+5234+f98739b6.x86_64
: python38-PyMySQL-0:0.9.3-3.module+el8.2.0+5234+f98739b6.noarch
: python38-asn1crypto-0:1.2.0-3.module+el8.2.0+5234+f98739b6.noarch
: python38-babel-0:2.7.0-10.module+el8.2.0+5234+f98739b6.noarch
: python38-cffi-0:1.13.2-3.module+el8.2.0+5234+f98739b6.x86_64
: python38-cffi-debuginfo-0:1.13.2-3.module+el8.2.0+5234+f98739b6.x86_64
: python38-chardet-0:3.0.4-19.module+el8.2.0+5234+f98739b6.noarch
: python38-cryptography-0:2.8-3.module+el8.2.0+5234+f98739b6.x86_64
: python38-cryptography-debuginfo-0:2.8-3.module+el8.2.0+5234+f98739b6.x86_64
: python38-debug-0:3.8.0-6.module+el8.2.0+5978+503155c0.x86_64
: python38-debuginfo-0:3.8.0-6.module+el8.2.0+5978+503155c0.x86_64
: python38-debugsource-0:3.8.0-6.module+el8.2.0+5978+503155c0.x86_64
: python38-devel-0:3.8.0-6.module+el8.2.0+5978+503155c0.x86_64
: python38-idle-0:3.8.0-6.module+el8.2.0+5978+503155c0.x86_64
: python38-idna-0:2.8-6.module+el8.2.0+5234+f98739b6.noarch
: python38-jinja2-0:2.10.3-4.module+el8.2.0+5234+f98739b6.noarch
: python38-libs-0:3.8.0-6.module+el8.2.0+5978+503155c0.x86_64
: python38-lxml-0:4.4.1-4.module+el8.2.0+5234+f98739b6.x86_64
: python38-lxml-debuginfo-0:4.4.1-4.module+el8.2.0+5234+f98739b6.x86_64
: python38-markupsafe-0:1.1.1-6.module+el8.2.0+5234+f98739b6.x86_64
: python38-markupsafe-debuginfo-0:1.1.1-6.module+el8.2.0+5234+f98739b6.x86_64
: python38-mod_wsgi-0:4.6.8-3.module+el8.2.0+5234+f98739b6.x86_64
: python38-numpy-0:1.17.3-5.module+el8.2.0+5978+503155c0.x86_64
: python38-numpy-debuginfo-0:1.17.3-5.module+el8.2.0+5978+503155c0.x86_64
: python38-numpy-doc-0:1.17.3-5.module+el8.2.0+5978+503155c0.noarch
: python38-numpy-f2py-0:1.17.3-5.module+el8.2.0+5978+503155c0.x86_64
: python38-pip-0:19.2.3-5.module+el8.2.0+5979+f9f0b1d2.noarch
: python38-pip-wheel-0:19.2.3-5.module+el8.2.0+5979+f9f0b1d2.noarch
: python38-ply-0:3.11-8.module+el8.2.0+5234+f98739b6.noarch
: python38-psutil-0:5.6.4-3.module+el8.2.0+5234+f98739b6.x86_64
: python38-psutil-debuginfo-0:5.6.4-3.module+el8.2.0+5234+f98739b6.x86_64
: python38-psycopg2-0:2.8.4-4.module+el8.2.0+5234+f98739b6.x86_64
: python38-psycopg2-debuginfo-0:2.8.4-4.module+el8.2.0+5234+f98739b6.x86_64
: python38-psycopg2-doc-0:2.8.4-4.module+el8.2.0+5234+f98739b6.x86_64
: python38-psycopg2-tests-0:2.8.4-4.module+el8.2.0+5234+f98739b6.x86_64
: python38-pycparser-0:2.19-3.module+el8.2.0+5234+f98739b6.noarch
: python38-pysocks-0:1.7.1-4.module+el8.2.0+5234+f98739b6.noarch
: python38-pytz-0:2019.3-3.module+el8.2.0+5234+f98739b6.noarch
: python38-pyyaml-0:5.1.2-6.module+el8.2.0+5234+f98739b6.x86_64
: python38-pyyaml-debuginfo-0:5.1.2-6.module+el8.2.0+5234+f98739b6.x86_64
: python38-requests-0:2.22.0-9.module+el8.2.0+5234+f98739b6.noarch
: python38-rpm-macros-0:3.8.0-6.module+el8.2.0+5978+503155c0.noarch
: python38-scipy-0:1.3.1-4.module+el8.2.0+5234+f98739b6.x86_64
: python38-scipy-debuginfo-0:1.3.1-4.module+el8.2.0+5234+f98739b6.x86_64
: python38-setuptools-0:41.6.0-4.module+el8.2.0+5978+503155c0.noarch
: python38-setuptools-wheel-0:41.6.0-4.module+el8.2.0+5978+503155c0.noarch
: python38-six-0:1.12.0-9.module+el8.2.0+5234+f98739b6.noarch
: python38-test-0:3.8.0-6.module+el8.2.0+5978+503155c0.x86_64
: python38-tkinter-0:3.8.0-6.module+el8.2.0+5978+503155c0.x86_64
: python38-urllib3-0:1.25.7-4.module+el8.2.0+5234+f98739b6.noarch
: python38-wheel-0:0.33.6-5.module+el8.2.0+5978+503155c0.noarch
: python38-wheel-wheel-0:0.33.6-5.module+el8.2.0+5978+503155c0.noarch
: python3x-pip-0:19.2.3-5.module+el8.2.0+5979+f9f0b1d2.src
: python3x-setuptools-0:41.6.0-4.module+el8.2.0+5978+503155c0.src
: pytz-0:2019.3-3.module+el8.2.0+5234+f98739b6.src
: scipy-0:1.3.1-4.module+el8.2.0+5234+f98739b6.src
: scipy-debugsource-0:1.3.1-4.module+el8.2.0+5234+f98739b6.x86_64
Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled, [a]ctive