Что такое агрессивные_упдейт_пакеты в Anaconda? - PullRequest
0 голосов
/ 10 июля 2020

Недавно я начал использовать среду Anaconda и в списке конфигураций наткнулся на параметр под названием aggressive_update_packages. Мне не очень понятно, что происходит, когда я добавляю к этому новый пакет. Мне не удалось найти удовлетворительного описания этой опции ( здесь лишь немного ), поэтому я могу только предположить, что она делает: я думаю, что она будет автоматически обновлять определенный пакет. Однако я точно не знаю, как это работает, вот о чем я спрашиваю. Я активно разрабатываю пакет специально для среды Anaconda, и для других было бы неплохо, если бы он автоматически обновлялся.

Ответы [ 2 ]

1 голос
/ 10 июля 2020

Согласно примечаниям к выпуску conda

агрессивные обновления: Conda теперь поддерживает параметр конфигурации agg_update_packages, который содержит последовательность строк MatchSpe c, в дополнение к параметру конфигурации pinned_packages. В настоящее время значение по умолчанию содержит пакеты ca-сертификатов, certifi и openssl. При изменении конфигурации с помощью команды conda config использование флагов --system и --env будет здесь особенно полезным. Например:

conda config --add inventory_update_packages defaults :: pyopenssl --system гарантирует, что общесистемные решения будут выполняться во всех средах с использованием последней версии pyopenssl по умолчанию channel.

conda config --add pinned_packages Python=2.7 --env

заблокирует все решения для текущей активной среды до Python версий, соответствующих 2.7. *.

Согласно этой проблеме - https://github.com/conda/conda/issues/7419 Это может означать, что любой новый env, созданный по умолчанию, добавляет / обновляет пакеты в конфигурации aggressive_update_packages.

Как получить значение переменной? - conda config --show

0 голосов
/ 11 июля 2020

Почему он существует

Настройки по умолчанию для набора aggressive_updates_packages предоставлены в основном в целях безопасности. Поскольку Conda приносит с собой множество собственных библиотек, некоторые из которых обеспечивают базовую функциональность для безопасного обмена данными в inte rnet, существует неявная ответственность за то, чтобы она прилагала некоторые усилия для исправления программного обеспечения, которое часто является поверхностью общих c кибератак. .

Попробуйте поискать любое программное обеспечение по умолчанию (например, openssl) в национальной базе данных уязвимостей NIST , и вы быстро поймете, почему может быть важно сохранить эти пакеты исправлены. Использование старого протокола SSL или наличие устаревшего списка центров сертификации оставляет один в целом уязвимым.

Как это работает

По сути, всякий раз, когда кто-то указывает на готовность изменить среду (например, conda (install|update|remove) ), Conda проверит наличие последних версий пакетов в наборе и запросит их установку. Не более того. Это не автоматическое обновление пакетов . Если пользователь никогда не пытается изменить среду, пакет никогда не будет обновлен.

Повторное использование функций

OP предлагает использовать это как способ « сохранить автоматически обновленный определенный пакет". Возможно, если ваши пользователи уже часто изменяют свои env, пакет будет часто обновляться с помощью этого параметра. Однако пакет не может управлять этим параметром самостоятельно ( манипулирование чем-либо, кроме файлов установки, категорически запрещено ). Пользователям придется вручную изменять свои настройки, чтобы добавить в список « определенный пакет ».

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

...