Я ищу простой подход для установки bash для установки предпочтительного интерпретатора Python, который бы работал на всех последних дистрибутивах Red Hat: CentOS 7 и 8, Fedora 28+ и RHEL 7/8.
Этодля использования в общем Dockerfile для начальной загрузки python на чистых изображениях. Текущую ошибочную реализацию можно увидеть по адресу https://github.com/ansible/molecule/blob/master/molecule/test/resources/playbooks/docker/Dockerfile.j2#L13-L14
- CentOS / RHEL 7: следует установить python, python-devel
- CentOS / RHEL 8 и Fedora 28-29: следует установить python36, python36-devel
- Fedora 30+: следует установить python3, python3-devel (которых 3,7)
Несколько фактов, которые можно использовать:
- если присутствует
dnf
, мы можем предположить, что новая ОС (python3) - мы могли бы использовать функцию yum / dnf whatprovides для получения правильного числа оборотов в минуту, даже если мы не знаем его точное имя. Например,
yum install /usr/bin/python3
установит python36 и избежит необходимости использовать жесткий код 36, который является правильным только для некоторых комбинаций релизов платформы, другим, вероятно, понадобятся python3, python35 или python37. - Мне пока не удалось найти способ использовать вышеприведенный трюк для принудительной установки заголовка -devel, который является ключевым.
Поскольку это касаетсяDockerfile - его размер является ключевым для его поддержки, так как мы не хотим писать там многострочные сценарии, чтобы избежать создания нескольких контейнерных слоев.