Рейтинг:2

Как компетентный системный администратор отслеживает ВСЕ пакеты Python, установленные его пользователями?

флаг ru

Недавно стало до боли очевидно, что я просто не знаю, как я должен управлять пакетами Python в своих системах.

Я просто ДОЛЖЕН иметь возможность знать, что все установлено и под какими идентификаторами пользователей, поскольку сообщество Python обучено тому, что ничего не должно устанавливаться как Root. . . . Это оставляет меня с серьезной проблемой!

В данном случае я использую дистрибутивы Fedora, В ОСНОВНОМ, но не исключительно, Fedora Server (все в какой-то форме Fedora Core), НО, я уверен, что этот вопрос относится и к другим дистрибутивам.

В конечном счете, вопрос в том; как системный менеджер должен справиться с этим ПРАВИЛЬНО?

Обратите внимание, что я НЕ спрашиваю о том, как установить сам Python, и я не говорю о системе разработки, где, если разработчики испортят свою собственную систему, это повлияет только на НИХ, хотя это все еще не очень хорошо.

На чем я сосредоточен, так это на том, что НЕКОТОРЫЕ пакеты программного обеспечения, использующие Python, имеют свои собственные подпакеты, которые недоступны через обычную парадигму установки пакетов платформы. И это было одно из них, что вызвало это внезапное открытие риска, который я имею; Mailman3 — это именно такой пакет, так как при его установке также не устанавливались все необходимые подпакеты, поэтому для них требовались некоторые «установки pip». И, обсуждая это с коллегой, он признался, что испортил систему, за управление которой я отвечаю, только чтобы узнать, что он испортил ее через пакет Python, который он установил...

... Я чувствую, что меня могут заставить реализовать безопасность, чтобы отдельные пользователи НЕ МОГУТ устанавливать пакеты Python и, таким образом, увеличивать мою собственную рабочую нагрузку не только для этого, но и для установки пакетов, которые они хотят ДЛЯ них, и все проблемы, которые влечет за собой. Я надеюсь, что я просто ничего не знаю о какой-то «особенности» Python! В противном случае, я думаю, что Python нуждается в серьезном переосмыслении того, как он делает то, что он делает, поскольку он, безусловно, кажется очень недружественным для системных администраторов.

Davidw avatar
флаг in
Здесь в игру вступает программное обеспечение для управления конфигурацией.
флаг in
Начать использовать контейнеры для своего программного обеспечения Python? И заставить пользователей предоставлять Dockerfiles, которые включают все установки pip? ... `Я чувствую, что меня могут заставить реализовать безопасность, чтобы отдельные пользователи НЕ МОГУТ устанавливать пакеты Python `, ваши разработчики/пользователи не должны иметь доступ к производственным серверам. У них должна быть среда разработки, и они могут предоставить вам файлы докеров, плейбуки или что-то еще, что создает производственную среду на известной платформе.
флаг ru
@Zoredache Человек, который испортил машину, не был разработчиком, это был кто-то, кто пытался установить пакет, написанный где-то еще, не в Mailman3, но как он. Обратите внимание, что Mailman3 в Fedora имеет формальный пакет, но НЕ устанавливает все компоненты. В этом и проблема.
Рейтинг:1
флаг us

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

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

Если в каком-то пакете отсутствуют зависимости, вам необходимо уведомить сопровождающего пакета об обновлении зависимостей.

флаг ru
Если бы система, в которой возникла эта проблема (ошибочная установка программного обеспечения), была средой разработки, меня бы это не беспокоило!
Рейтинг:0
флаг cn

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

Администраторы ОС, предпочитающие системный менеджер пакетов, могут обернуть каждый пакет в rpm или deb. В данном случае унифицирует установку Mailman 3 вплоть до его зависимостей от Python.Пакеты можно подписывать и доставлять с помощью той же инфраструктуры, которая применяет обновления ОС. Однако требует значительных работ по упаковке, для вещи и его зависимости. Похоже, в Fedora есть пакет mailman3 и их инфраструктура использует это.

Разработчики и другие пользователи могут отказаться от системного диспетчера пакетов в пользу специфичного для языка, в данном случае Python pip. Получает доступ к последним версиям огромного количества пакетов и может устанавливать их в каталог непривилегированного пользователя. Однако у администратора меньше контроля, и у пользователей могут возникнуть проблемы. Вероятно, они попадут в беду, поскольку Почтальон 3 зависимости имеет библиотеки C для связи, настройку MTA и базу данных, а также отдельное приложение веб-интерфейса.

Конфликты, которые вы наблюдали между системными пакетами и подсказкой pip, вам нужно выбрать один. Либо упакуйте его так, чтобы он был совместим с системным python, либо поместите его в виртуальную среду, содержащую требования. Хотя вы можете удалить пакет пипсов чтобы пользователи не возились с вещами, pip может быть загружен определенным пользователем. В идеале помочь людям установить набор заведомо работающих приложений.

Ответить или комментировать

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