LINUX.ORG.RU
ФорумTalks

Externally Managed environment

 ,


0

2

Как, наверное, всё питонисты знают, есть такая штука, как externally managed environment:

https://peps.python.org/pep-0668/

, что реализовано, например, в Дебиане. Но если этот подход такой грамотный в плане защиты системы от поломки, то почему же наш вездесущий любимый дефолт-дистрибутив, Убунту, не следует ему, и по-прежнему позволяет устанавливать пакеты через pip на уровне системы, без всяких venv?

★★★★★

Гента следует, в результате невозможна не только установка в систему, но и в --user. Приходится мучаться с venv

annulen ★★★★★
()

Устанавливать ПО в линуксовых системах настолько просто, что мы придумали docker.

Camel ★★★★★
()
Ответ на: комментарий от annulen

Кагбэ да. Но по факту сейчас каждый сервис предлагает себя установить с помощью docker’а. Читай: притащить с собой почти всю ОС, только лишь ядро использовать хостовое.

Camel ★★★★★
()
Ответ на: комментарий от Camel

У тебя профдеформация. Обычно юзерский софт пакуют в deb/rpm/AppImage/flatpack. И только серверный софт пакуют в докер

cobold ★★★★★
()
Ответ на: комментарий от Camel

Но по факту сейчас каждый сервис предлагает себя установить с помощью docker’а.

Не предлагает, а даёт возможность а) «пощупать» себя в полностью развёрнутом и настроенном состоянии, с минимумом геморроя и не захламляя систему зря (например, вдруг оно мне вообще не надо, а я буду стопицот java-пакетов в систему ставить); б) использовать эти образы в их естественной среде обитания, т.е. на докер-хостингах или в приватной инфраструктуре

annulen ★★★★★
()
Ответ на: комментарий от annulen

А вы не думали ли, почему вам не хочется ставить стопицот jav’ных пакетов? Может нет способа их легко и беспроблемно поставить, а потом так же легко и бесследно удалить?

Camel ★★★★★
()

Убунту, не следует ему, и по-прежнему позволяет устанавливать пакеты через pip на уровне системы

24.04 не позволяет, если только под рутом.

th3m3 ★★★★★
()
Ответ на: комментарий от th3m3

Естественно, под рутом, речь не об этом.

seiken ★★★★★
() автор топика

Классический дистрибутив даёт гарантии

  1. пакет собран из заслуживающего доверия источника;
  2. на протяжении жизни релиза дистра пакет будет получать обновления безопасности, даже если на эту версию в апстриме забили болт;
  3. на протяжении жизни релиза дистра пакет не будет получать обновления, ломающие API/ABI прошлой версии.

Чтобы этого достичь, ментейнеры фиксируют версии и пытаются минимизировать dependency hell, чтобы уменьшить скоуп своих задач. И чтобы не плодить сущности в своей работе – используют для этого свою общую инфру для всех ЯП, а не учатся как работать с 100 разными package manager.

А через pip может приехать что угодно, включая малварь.

snizovtsev ★★★★★
()
Последнее исправление: snizovtsev (всего исправлений: 3)
Ответ на: комментарий от snizovtsev

Это всё прекрасно, но в Убунте этим не заморачиваются.

seiken ★★★★★
() автор топика
Ответ на: комментарий от apt_install_lrzsz

@annulen, мне в Gentoo pip тоже предлагает --break-system-packages. С ним всё нормально работает. Только нужно всё заново ставить при переходе на новую версию Питона.

question4 ★★★★★
()
Ответ на: комментарий от snizovtsev

А через pip может приехать что угодно, включая малварь.

Если дистрибутив сам ничего не ставит из пипа, то это не проблемы дистрибутива

annulen ★★★★★
()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)