4dbfab66a1
CentOS 7 is the only distro we support currently that doesn't have Python 3 installed in some form in the base images. For centos 7 add an early install of it in the yum element so we can have all the in-chroot scripts assume Python 3. There is only one package that causes issues; yaml which comes from EPEL. Everywhere else it is a base package, but we don't have a way to say "enable epel to install this". Just hack it in, we don't want to go reworking the world for CentOS 7 at this point. Also add python3 and it's yaml library to the centos 8 path. This brings in the "user" python3 in /urs/bin/python3 (the "system" python3 is already installed). Again, this just lets us assume /usr/bin/python3 in scripts for all platforms. package-installs is one of these things running python in the chroot, and unfortunately we have elements that use it at 01- level in pre-installd. Thus to make sure python3 is there nice and early, run it at 0 level, but make sure it comes after yum/dnf update. Change-Id: I088fc4284e889147ca9a375d4a159264cff53484
26 lines
871 B
Bash
Executable File
26 lines
871 B
Bash
Executable File
#!/bin/bash
|
|
|
|
if [ ${DIB_DEBUG_TRACE:-0} -gt 0 ]; then
|
|
set -x
|
|
fi
|
|
set -eu
|
|
set -o pipefail
|
|
|
|
# Ensure the python3 interpreter and YAML libraries are installed
|
|
# early (even before package-installs, which is written in Python and
|
|
# uses YAML).
|
|
|
|
if [[ ${DISTRO_NAME} =~ (centos|rhel) && ${DIB_RELEASE} == 7 ]]; then
|
|
# Our package map and install stuff doesn't have a way to say
|
|
# "install this from EPEL". So we hack in an install of it here
|
|
# from EPEL. Nothing else should have installed EPEL at this
|
|
# early stage.
|
|
yum install -y python3 epel-release
|
|
yum install -y python36-PyYAML
|
|
yum remove -y epel-release
|
|
elif [[ ${DISTRO_NAME} =~ (centos|rhel) && ${DIB_RELEASE} > 7 ]]; then
|
|
# For 8 and above ensure the "user" python3 package is installed
|
|
# so we have /usr/bin/python3 and pyyaml.
|
|
dnf install -y python3 python3-pyyaml
|
|
fi
|