5

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?

3
  • 1
    Curious why you have so many channels listed? Having extra (potentially un-used) channels may not be the main problem but it can exacerbate issues. This error message is notoriously opaque; it doesn't even necessarily mean that it can't find qt from conda-forge Commented Jul 11, 2021 at 16:39
  • Thanks for your comment @MattThompson. I've added those channels because they were needed at some point though I recognize that not all are currently needed (I can drop r for instance). I do not understand what you mean regarding qt considering that conda-forge is part of my condarc channels, and is also specified in the channel list and therefore it should be one of those being searched. If it isn't finding it in another channel that's not conda-forge, shouldn't it then search conda-forge anyway? Commented Jul 12, 2021 at 8:01
  • 1
    I mean to only point out that the error message is misleading; you can easily read it as the solver saying "I couldn't find qt 5.6.* from conda-forge" but the solver is not really being useful there. (As you have correctly found, it is available from conda-forge.) The root of the issue is often more complicated and deals with how each packages depend on each other, as @merv describes in his answer with much more detail than I had the patience to find myself. Commented Jul 13, 2021 at 18:45

1 Answer 1

5

RStudio on Conda is Old

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.

Use Native RStudio

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.


Additional Notes

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.

Sign up to request clarification or add additional context in comments.

3 Comments

Many thanks for this @merv. A quick question, would an installation from github adapting this answer for instance present as plausible solution to overcome the outdated rstudio version in conda?
@Sos for what package? I am unclear what you still see as a problem to be solved. GitHub installs with Conda only work through Pip and therefore only apply to Python packages. Moreover, Bioconductor packages are pinned to R versions, so I doubt you could install mixomics=6.16 to ever build for under R v4.1, no matter where you sourced it.
Alright, thanks, I understand. Many thanks

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.