Python Anaconda中的攻击性更新包到底是什么?
我最近开始使用Anaconda环境,在配置列表中我遇到了一个名为Python Anaconda中的攻击性更新包到底是什么?,python,anaconda,conda,Python,Anaconda,Conda,我最近开始使用Anaconda环境,在配置列表中我遇到了一个名为aggressive\u update\u packages的选项。我不太清楚当我添加一个新的包时会发生什么。我找不到关于这个选项()的任何令人满意的描述,所以我只能假设它的作用:我认为它会自动更新特定的包。但是我肯定不知道它是如何工作的,这就是我要问的。我正在积极开发一个软件包,特别是用于Anaconda环境的软件包,对于其他人来说,自动更新软件包是一个不错的功能。根据conda发行说明 主动更新:除了pinned_package
aggressive\u update\u packages
的选项。我不太清楚当我添加一个新的包时会发生什么。我找不到关于这个选项()的任何令人满意的描述,所以我只能假设它的作用:我认为它会自动更新特定的包。但是我肯定不知道它是如何工作的,这就是我要问的。我正在积极开发一个软件包,特别是用于Anaconda环境的软件包,对于其他人来说,自动更新软件包是一个不错的功能。根据conda发行说明
主动更新:除了pinned_packages配置参数外,Conda现在还支持一个主动更新_packages配置参数,该参数保存一系列MatchSpec字符串。目前,默认值包含ca证书、certifi和openssl包。当使用conda config命令操作配置时,--system和--env标志的使用在这里尤其有用。例如:
conda config--添加攻击性的\u更新\u包默认值::pyopenssl--系统
将确保在系统范围内,在所有环境上强制使用来自默认通道的最新版本的pyopenssl
conda config--add pinned_packages Python=2.7--env
将当前活动环境的所有解算锁定为与2.7.*匹配的Python版本
根据本期——
这可能意味着默认情况下创建的任何新环境都会在aggressive\u update\u packages
配置中添加/更新包
如何获取变量值?-<代码>conda配置--显示它存在的原因
aggressive\u updates\u包的默认设置主要是出于安全目的提供的。由于Conda带来了许多本机库,其中一些库提供了在互联网上安全通信的核心功能,因此有一个隐含的责任,即确保它正在努力修补经常出现在一般网络攻击表面的软件
尝试在中搜索任何默认软件(例如,openssl
),您将很快了解为什么对这些软件包进行修补非常重要。运行旧的SSL协议或拥有过时的证书颁发机构列表会使人容易受到攻击
工作原理
本质上,只要有人表示愿意改变环境(例如,conda(install | update | remove)
),conda就会检查并请求安装集合中软件包的最新版本。没有比这更重要的了它不会自动更新软件包。如果用户从未尝试改变环境,则包将永远不会更新
重新调整功能的用途
OP建议将此作为“自动更新特定包”的一种方式。如果您的用户已经频繁地改变他们的环境,那么包可能会通过此设置频繁更新。但是,该设置不是包可以自行操作的()。用户必须手动操作其设置才能将“特定包”添加到列表中
对于注重再现性的用户,我会积极劝阻他们不要更改全局设置,将非安全基本软件包添加到他们的主动更新\u软件包列表中。对于其他人来说,保持自动更新是一个不错的功能。这难道不会否定使用虚拟环境和软件包管理器的一些优势吗?@AMC它只适用于一小部分人(甚至不是真人,实验室中的一些PC)。当然,任何人都可以这样做。这只适用于一小部分人(甚至不是真人,实验室里的一些个人电脑)。在这种情况下,我不确定我是否理解其好处。你不能让一些东西按计划运行吗?@AMC我可以,但我只是好奇激进的更新包如何实际工作。-康达·迪维森,请你解释清楚,我正是在找这个。我知道一个包本身不能操纵激进的更新\u包
。我猜conda update——时间表上的所有都应该做到这一点。