Как установить Python 3.8.1 на контейнер RHEL 8 UBI с помощью dnf? - PullRequest
0 голосов
/ 08 января 2020

Как мне установить и запустить Python 3.8.1 на Linux? Python .org не предлагает двоичный файл Linux для Python 3.8.1.


Я хочу ввести:

dnf -y install python или dnf -y install python38

и пусть он установит Python 3.8.1 на моем RHEL 8.0 или 8.1 внутри моего минимального контейнера, который я хочу сохранить маленьким.

Как бы я это сделал?

Я даже не вижу загрузки для Python для Linux на python .org.


Люди используют Python на Linux?

Там нет Linux двоичных файлов для загрузки с Python .org


Я искал все (inte rnet search) и не могу найти способ установить Python 3.8.1 легко в минимальном контейнере.

Я не хочу загружать исходный код и компилировать, потому что это небольшой контейнер, который я пытаюсь сохранить маленьким без больших накладных расходов.


Ссылка:

https://www.python.org/downloads/release/python-381/

1 Ответ

1 голос
/ 26 января 2020

Два примечания: я не уверен, как установлен ваш контейнер. Вы пометили это как RHEL и Fedora. Это два отдельных дистрибутива. Я могу прокомментировать Fedora.

Во-первых, да, Python широко используется в мире GNU / Linux. Большинство дистрибутивов используют его как один из языков для сборки системы и ее пакетов. Серверы Linux являются единственными официально рекомендованными серверами для Python, или я так прочитал (отредактирую с источником позже, если смогу его найти). Python .org имеет Linux загрузок, но в исходных файлах, упакованных в сжатые архивы. Это может способствовать поиску диспетчера пакетов дистрибутива сначала для совместимости с дистрибутивом (поскольку присутствие в репозитории дистрибутива должно означать, что версия была проверена); эти пакеты предварительно скомпилированы, если не указано иное. Это также означает, что файлы являются дистрибутивными c - нет необходимости в .DEB, .RPM ...

Fedora: в сообщении нет версии Fedora, но по крайней мере Fedora 31 имеет версия для разработки, как они ее называют, Python 3.8.1 в формате RPM. (Fedora 32 должна иметь Python 3.8 на системном уровне.) Вы можете получить его с помощью:

sudo dnf install python38

Не перезаписывайте системные переменные для python или python3; эта ошибка может привести к системным c проблемам различной величины. После установки вы можете создать виртуальную среду в любом каталоге, с которым вы хотите:

python3.8 -m venv <venv_name>

Чтобы активировать venv, используйте:

. <path/to/venv>/<venv_name>/bin/activate

Вы можете установить псевдоним или символическую ссылку для простоты. Когда venv активирован, Python 3.8.x будет версией Python, используемой при вызове переводчика. Вы должны увидеть ваше имя_вены в скобках слева от вашего PS1. Чтобы деактивировать, используйте:

deactivate

Venv_name должно быть удалено из PS1, возвращая его в нормальное состояние. Проверка версии Python должна вернуть версию Python системного уровня.

Если вы проверяете версию Python до и после активации, она должна отличаться.

python3 -V

Этот пакет может или не может быть отправлен вниз по течению к RHEL. Если у вас есть доступный пакет, но вам нужен полный Python стек или он недоступен в базовых репозиториях RHEL, вам может понадобиться получить исходные файлы и распаковать архивы .

В качестве альтернативы можно проверить другие репозитории, узнать о RPM, которые кто-то другой скомпилировал из исходного кода, или проверить flatpak (чего я не сделал).

Последнее примечание: компиляция из исходного кода не должна приводить к увеличению Python двоичный Вы можете удалить любые ненужные дополнения, такие как оригинальный файл архива, использованный для компиляции, после того, как вы извлекли то, что вам нужно. Само действие будет храниться только в энергозависимой памяти, а не на вашем диске.

...