尽管在 conda-forge 中找到了软件包,但无法满足 conda 软件包:软件包 XXX 需要软件包 YYY,但无法安装任何提供程序

Sos*_*osi 5 conda mamba

我正在尝试创建一个简单的环境:

channels:
- rdonnelly
- bioconda
- anaconda
- r
- conda-forge
- defaults

dependencies:
- bioconda::bioconductor-mixomics>=6.16
- free::fonts-continuum
- rstudio
Run Code Online (Sandbox Code Playgroud)

mamba env create -f my_env.yaml -n some_env,之后我发现包裹丢失:

Looking for: ["bioconda::bioconductor-mixomics[version='>=6.16']", 'free::fonts-continuum', 'rstudio']


Encountered problems while solving:
  - package rstudio-1.0.153-1 requires qt 5.6.*, but none of the providers can be installed
Run Code Online (Sandbox Code Playgroud)

但是,我可以看到它qt存在于conda-forge

mamba search conda-forge::qt

# returns
Loading channels: done
# Name                       Version           Build  Channel             
qt                             4.8.7      ha8c56c7_9  conda-forge         
qt                             5.6.2   hbe13537_1012  conda-forge         
qt                             5.6.2   hce4f676_1013  conda-forge         
qt                             5.6.2   hf516382_1009  conda-forge         
qt                             5.6.2   hf516382_1010  conda-forge         
qt                             5.6.2   hf516382_1011  conda-forge         
qt                             5.9.7      h0c104cb_3  conda-forge         
qt                             5.9.7      h52cfd70_2  conda-forge         
...
Run Code Online (Sandbox Code Playgroud)

如果我添加qt=5.6my_env.yaml,则错误会更改为另一个包。到底是怎么回事?听起来我condamamba安装有问题。我已经尝试过,conda clean -a但问题仍然存在。

知道为什么会发生这种情况吗?

mer*_*erv 5

Conda 上的 RStudio 很旧

也许是冲突报告中的一个错误,但是,稍微深入一下依赖项兔子洞,它确实看起来无法令人满意。具体来说,您想要的 Bioconductor 包需要 R 4.1,并且r-base=4.1.0具有要求icu >=68.1,<69.0a0

另一方面,rstudio具有qt依赖关系,而该依赖关系又依赖于icu. 然而,由于rstudioAnaconda Cloud 上的所有版本都没有维护,它们相当旧,所以你要么最终得到

  • rstudio =1.1.456 -> qt =5.6.* -> icu >=58.2,<59.0a0(通过defaults
  • rstudio =1.2.502 -> qt >=5.9.4,<5.10.0a0] -> icu >=64.2,<65.0a0(通过rdonnelly

其中每一项都禁止使用 R 4.1。

从技术上讲,您可以尝试安装旧版本的mixomics,但这里更重要的要点是:不要通过 Conda 安装 RStudio

使用本机 RStudio

一般来说,不应将 RStudio 等基础设施安装到类似内核的环境中。在本机级别安装一次,然后通过在激活的环境下启动 RStudio 来加载环境。有关将 Conda R 环境加载到本机 RStudio 会话中的说明,请参阅此答案。


补充笔记

strictBioconda 有非常具体的渠道要求,具体来说,所有软件包均按照渠道优先级顺序构建

conda-forge > bioconda > defaults
Run Code Online (Sandbox Code Playgroud)

不遵循此通道顺序可能会导致未定义的行为。