Как установить переносимый по умолчанию python между всеми последними дистрибутивами RedHat? - PullRequest
0 голосов
/ 11 октября 2019

Я ищу простой подход для установки 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 - его размер является ключевым для его поддержки, так как мы не хотим писать там многострочные сценарии, чтобы избежать создания нескольких контейнерных слоев.

...