问题描述
我正在尝试创建一个简单的环境:
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.6
添加到 my_env.yaml
,另一个包的错误会更改。到底是怎么回事?听起来我的 conda
或 mamba
安装有问题。我试过 conda clean -a
但问题仍然存在。
知道为什么会这样吗?
解决方法
Conda 上的 RStudio 很旧
也许是冲突报告中的一个错误,但是,稍微深入依赖兔子洞,它确实似乎无法令人满意。具体来说,您想要的 Bioconductor 包需要 R 4.1,而 r-base=4.1.0
有 icu >=68.1,<69.0a0
的要求。
另一方面,rstudio
有一个 qt
依赖项,而后者又依赖于 icu
。但是,由于 Anaconda Cloud 上 rstudio
的所有版本都没有维护,它们相当旧,所以你要么以
-
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 会话中的说明,请参阅 this answer。
附加说明
Bioconda 有非常具体的渠道要求,具体来说,所有软件包都使用 strict
渠道优先级使用顺序构建
conda-forge > bioconda > defaults
不遵循此频道顺序可能会导致未定义的行为。