我最近开始使用Anaconda环境,在配置列表中我遇到了一个名为aggressive_update_packages的选项。我不太清楚当我添加一个新的包时会发生什么。我找不到关于这个选项(only a little bit here)的任何令人满意的描述,所以我只能假设它做了什么:我认为它将继续自动更新特定的包。但是我肯定不知道它是如何工作的,这就是我要问的。我正在积极开发一个软件包,特别是针对Anaconda环境,对其他人来说,它将是一个很好的功能,让它自动更新
aggressive updates: Conda now supports an aggressive_update_packages configuration parameter that holds a sequence of MatchSpec strings, in addition to the pinned_packages configuration parameter. Currently, the default value contains the packages ca-certificates, certifi, and openssl. When manipulating configuration with the conda config command, use of the system and env flags will be especially helpful here. For example:
conda config add aggressive_update_packages defaults::pyopenssl system
would ensure that, system-wide, solves on all environments enforce using the latest version of pyopenssl from the defaults channel.
conda config add pinned_packages Python=2.7 env
would lock all solves for the current active environment to Python versions matching 2.7.*.
它存在的原因
aggressive_updates_packages
集的默认设置主要用于安全目的。由于Conda带来了许多本机库,其中一些库提供了在互联网上安全通信的核心功能,因此有一个隐含的责任,即确保它正在努力修补经常出现在一般网络攻击表面的软件尝试在NIST's National Vulnerability Database中搜索任何默认软件(例如,
openssl
),您将很快了解为什么对这些软件包进行修补是至关重要的。运行旧的SSL协议或拥有过时的证书颁发机构列表会使人容易受到攻击工作原理
本质上,只要有人表示愿意改变环境(例如,
conda (install|update|remove)
),Conda就会检查并请求在集合中安装最新版本的软件包。没有比这更重要的了它不会自动更新软件包。如果用户从未尝试改变环境,则包将永远不会更新重新调整功能的用途
OP建议将此作为一种方式“保持自动更新特定包”。如果您的用户已经频繁地改变他们的环境,那么包可能会通过此设置频繁更新。但是,该设置不是包可以自行操作的(manipulating anything other than install files is expressly forbidden)。用户必须手动操作其设置,才能将“特定包”添加到列表中
对于注重再现性的用户,我会积极劝阻他们不要更改全局设置,将非安全基本包添加到
aggressive_updates_packages
列表中根据康达的发行说明
conda config add pinned_packages Python=2.7 env
根据本期-https://github.com/conda/conda/issues/7419 这可能意味着默认情况下创建的任何新env都会在
aggressive_update_packages
配置中添加/更新包如何获取变量值?-
conda config show
相关问题 更多 >
编程相关推荐