I am trying to make a simple environment:
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
, after which I get packages missing:
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
However, I can see that qt
exists in 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
...
If I add qt=5.6
to my_env.yaml
, the error changes for another package instead. What is going on? It sounds like my conda
or mamba
installation is buggy. I've tried conda clean -a
but the problem remains.
Any idea why this is happening?
Perhaps a bug in the conflicting reporting, but, going down the dependency rabbit hole a bit, it really does appear to be unsatisfiable. Specifically, that Bioconductor package you want requires R 4.1, and r-base=4.1.0
has the requirement icu >=68.1,<69.0a0
.
On the other hand, rstudio
has a qt
dependency, which in turn depends on icu
. However, because all versions of rstudio
on Anaconda Cloud are unmaintained, they're rather old, so you either end up with
rstudio =1.1.456 -> qt =5.6.* -> icu >=58.2,<59.0a0
(via defaults
)rstudio =1.2.502 -> qt >=5.9.4,<5.10.0a0] -> icu >=64.2,<65.0a0
(via rdonnelly
)each of which prohibit using R 4.1.
Technically, you could try installing older versions of mixomics
, but the more important takeaway here is: don't install RStudio through Conda.
In general, one should not be installing infrastructure like RStudio into kernel-like environments. Install it once, at the native level, and load an environment by launching RStudio with the environment activated. See this answer for instructions on loading a Conda R environment into a native RStudio session.
Bioconda has very specific channel requirements, specifically, all packages are built with strict
channel priority using the order
conda-forge > bioconda > defaults
Not following this channel order can lead to undefined behavior.