Автор Тема: [python] Автоматизированная установка и обновление разных версий интерпретатора  (Прочитано 341 раз)

Оффлайн Igor Muzyka

  • Начинающий
  • *
  • Сообщений: 1
offtopic
Уже примерно месяц являюсь пользователем ALT Linux на своём десктопе.
До этого, начиная с 2008 года, прошёл путь: FreeBSD + KDE3 => Debian + Gnome => ArchLinux + Openbox => Ubuntu LTS => Kubuntu LTS.
Пока что ALT Linux меня радует, в частности в сравнении с Ubuntu/Kubuntu LTS (которые я так же считаю отличными решениями для использования на десктопе) я вижу у альта следующие преимущества:
  • Пакетная база несколько новее (я использую ALT Workstation K 10.2), в частности меня порадовало наличие последней версии Plasma 5 LTS из коробки.
  • Epm, по-моему - хорошее решение. Наверное, много копий было сломано, перед тем как его приняли)). Собственно до ALT Linux я о Epm вообще не знал, а теперь практически всё, что раньше приходилось тянуть из snap или flatpak, ставлю посредством Epm.
  • Понравились rpm-пакеты. В сравнении с rpm-пакетами, формат и сборка deb-пакетов мне кажутся необосновано переусложненными.

Единственное, что я не обнаружил, - это простой способ установить и использовать сразу несколько интерпретаторов python, вероятно, плохо искал. В Ubuntu это решалось подключением репозитория deadsnakes
Собственно ниже и пойдет речь о решении данного вопроса.

Здравствуйте, я написал свой велосипед для автоматизации сборки из исходников разных версий интерпретаторов Python 3.
Может быть кому-то ещё кроме меня пригодится.

Кратко о возможностях:
  • Сборка нужной версии Python и упаковка её в rpm путем ввода всего одной команды (тарбол с исходниками программа скачивает сама с python.org). Например:
python-manager --build 3.11.5
  • Просмотр информации о том, какие последние версии интерпретаторов доступны на python.org
python-manager --last-versions
  • Информация о том, не доступна ли новая версия для уже установленного интерпретатора
python-manager --versions
  • Обновление уже установленных интерпретаторов до последней версии
python-manager --build-outdated --install
  • Полный функционал изложен здесь:
python-manager --help

    Особенности работы:
    • Для сборки пакетов используется hasher. Сборка rpm-пакета происходит в /tmp, необходимо, чтобы в файловой системе в которой находится /tmp, было не менее 3 ГБ свободного простанства.
    • Именование rpm-пакетов происходит по шаблону python[major_version][middle_version], например: python37, python38, python311.
    • Установка интерпретаторов производится в /usr/local.
    • Установка более новой версии системного интерпретатора происходит безболезненно, т. к. она ставится в /usr/local. В работе других программ, зависящих от python3, ничего не меняется, т. к. они продолжают обращаться к /usr/bin/python3, который ссылается на системный интерпретатор.
    [miv@m4nb:~]0$ python3 -V
    Python 3.9.16
    [miv@m4nb:~]0$ python3.9 -V
    Python 3.9.18
    При этом, если вы в своем проекте хотите использовать последнюю версию, то достаточно в корне проекта выполнить:
    python3.9 -m venv venv
    source ./venv/bin/activate

    Проект на github: https://github.com/grmzk/python-manager
    Последний rpm-пакет: https://github.com/grmzk/python-manager/releases/latest

    У меня всё. Пинайте наглого неофита. В частности интересует: нужен ли мой проект ещё кому-нибудь?
    « Последнее редактирование: 25.09.2023 23:11:05 от Igor Muzyka »

    Оффлайн gosts 87

    • Завсегдатай
    • *
    • Сообщений: 2 636
    • Дмитрий/Dmitry/德米特里/दिमित्री

    Оффлайн ASte

    • Мастер
    • ***
    • Сообщений: 1 550
    Для сборки пакетов используется hashman
    наверно все же hasher?