You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Conda update在同一频道同包两个版本间反复切换问题求助

问题:Conda更新时包版本反复切换的异常情况

这是此前问题的续篇,当前无论设置channel_priority为flexible还是strict,每次执行conda update -n base --all时,都会在两组包版本间循环切换:

  • 第一组变化:更新libarchive(3.7.2-h313118b_1→3.7.4-haf234dc_0)、zstd(1.5.5-h12be248_0→1.5.6-h0ea2cb4_0),同时降级zstandard(0.22.0-py311he5d195f_0→0.19.0-py311ha68e1ae_0)
  • 第二组变化:更新zstandard(0.19.0-py311ha68e1ae_0→0.22.0-py311he5d195f_0),同时降级libarchive(3.7.4-haf234dc_0→3.7.2-h313118b_1)、zstd(1.5.6-h0ea2cb4_0→1.5.5-h12be248_0)

通过conda list -n base --show-channel-urls确认,这些包均来自同一个无法控制的内部企业频道XXX。

疑问:

  • 操作是否存在失误?
  • 如何避免这种版本反复切换的情况?
  • 这是conda 24.5.0的bug还是XXX频道的配置问题?

注:已在GitHub提交相关问题。


问题分析与解决建议

核心原因判断

这种反复切换的情况大概率是企业内部频道XXX的配置问题,而非操作失误或conda 24.5.0的bug。本质是频道内的包依赖关系存在冲突:

  • 新版libarchive(3.7.4)和新版zstd(1.5.6)依赖旧版zstandard(0.19.0)
  • 新版zstandard(0.22.0)依赖旧版libarchive(3.7.2)和旧版zstd(1.5.5)
    Conda的求解器每次都会在这两组满足依赖的版本组合间来回选择,导致执行update --all时循环切换。

避免方法

  1. 锁定关键包版本
    选择一组你更偏好的版本组合,锁定这些包阻止自动更新。以选择新版libarchive和zstd为例,执行命令:
conda install -n base libarchive=3.7.4 zstd=1.5.6 zstandard=0.19.0 --no-update-deps
conda config --add pinned_packages libarchive=3.7.4 zstd=1.5.6 zstandard=0.19.0

若偏好新版zstandard,替换对应版本号即可。

  1. 跳过冲突包更新
    执行更新时排除冲突包,避免触发版本切换:
conda update -n base --all --exclude libarchive,zstd,zstandard
  1. 反馈频道维护方
    联系企业内部频道XXX的维护人员,告知包依赖冲突问题,请求修复频道内的包依赖关系,这是彻底解决问题的根本途径。

操作排查

确认无额外冲突配置:

  • 执行conda config --show-sources检查输出,确保无自定义的依赖优先级或异常频道配置
  • 保持channel_priority为strict(因所有包来自同一频道,该设置对本次问题影响有限,但能避免其他频道干扰)

内容的提问来源于stack exchange,提问作者sds

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 06:59:59