Whenever I create or modify an environment using conda
or mamba
, the following always appears:
Solving environment: ...working...
When it works straightaway, it becomes this:
Solving environment: ...working... done
When it doesn't work straightaway, it becomes this:
Solving environment: ...working... failed with initial frozen solve. Retrying with flexible solve
But even after this what-seems-like-an-error message, sometimes the environment creation/modification goes ahead and works anyway.
I do not understand what any of this means, or what specifically conda
/mamba
is doing behind the scenes as it "solves the environment", whether frozen or flexible.
Can someone provide an accessible explanation of these concepts? What is "solving", and how does it work?
Note that my question is very similar to an older post. But that post asked two different questions ("what is solving" + "why are packages removed"), and the replies mostly addressed only the latter.