2

我正在尝试制作一个简单的环境:

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

dependencies:
- bioconda::bioconductor-mixomics>=6.16
- free::fonts-continuum
- rstudio

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

但是,我可以看到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         
...

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

知道为什么会这样吗?

4

1 回答 1

2

Conda 上的 RStudio 已过时

可能是冲突报告中的一个错误,但是,稍微降低依赖关系的兔子洞,它确实看起来确实不能令人满意。具体来说,您想要的那个 Bioconductor 包需要 R 4.1,并且r-base=4.1.0icu >=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 会话的说明,请参阅此答案。


补充说明

Bioconda 有非常具体的渠道要求,具体来说,所有的包都是strict使用订单以渠道优先级构建的

conda-forge > bioconda > defaults

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

于 2021-07-12T20:35:06.850 回答