3

I'm trying to get a program called BEAST on my local Ubuntu using Anaconda but get this message:

Package libgcc-ng conflicts for: 
beast2 -> beagle-lib -> libgcc-ng[version='>=4.9|>=7.3.0|>=7.2.0'] 
python=3.7 -> libgcc-ng[version='>=7.2.0|>=7.3.0']

I thought I had Anaconda to be rid of package conflicts

What does this conflict mean?

Seems like two programs are prioritizing a package version differently, so what? Can't these two programs continue with their lives with different priorities?

And by the way: how would I solve this?

Edit:

 conda create -n test python=3.7 beast2

gives me this:

UnsatisfiableError: The following specifications were found to be incompatible with each other:

Output in format: Requested package -> Available versions

Package libffi conflicts for:
python=3.7 -> libffi[version='>=3.2.1,<3.3a0|>=3.3,<3.4.0a0']
beast2 -> gettext[version='>=0.19.8.1,<1.0a0'] -> libffi[version='>=3.2.1,<3.3a0']
AWE
  • 4,045
  • 9
  • 33
  • 42
  • Try to create new environment with all dependencies defined in it. I've tried it with the deps mentioned and it ran OK (`conda create -n test python=3.7 beast2`) – Marek Schwarz Sep 21 '20 at 13:20
  • Similar/same error. "libstdcxx-ng conflicts..." – AWE Sep 21 '20 at 20:13
  • could you post whole output of `conda create -n test python=3.7 beast2` ? Could you verify which channels are configured for your conda installation? (I have `bioconda` and `conda-forge` added) – Marek Schwarz Sep 22 '20 at 06:57
  • Nice to use `mamba` and install all at once https://stackoverflow.com/a/69137255/13697228 – Sterling Mar 10 '22 at 03:37

2 Answers2

7

TLDR

conda create -n beast -c conda-forge -c bioconda python=3.7 beast2

Longer version

By telling conda that it can visit conda-forge, it has some extra options to resolve the dependency conflicts. However, that doesn't really explain why this happens:

$ conda create -n beast python=3.7 libgcc-ng=7.3 libstdcxx-ng=7.3
$ activate beast
$ conda install -c bioconda beast2
Package libstdcxx-ng conflicts for:
python=3.7 -> libstdcxx-ng[version='>=7.2.0|>=7.3.0']
beast2 -> beagle-lib -> libstdcxx-ng[version='>=7.3.0|>=7.5.0']

It isn't clear why these dependencies aren't satisfied, since we already installed libstdcxx-ng version 7.3.

Alternative

If you instead use mamba to make the environment, you get slightly more helpful feedback:

$ conda install mamba
$ mamba create -n beast-mamba python=3.7 beast2
...
Problem: nothing provides requested beast2
...
$ mamba create -n beast-mamba -c bioconda python=3.7 beast2
...
Encountered problems while solving.
Problem: nothing provides openjdk 8.0* zulu8* needed by beast2-2.4.5-0
...
$ mamba create -n beast-mamba -c bioconda -c conda-forge python=3.7 beast2
...
Success
FiddleStix
  • 3,016
  • 20
  • 21
0

You can tell conda to search packages in coda-forge like this:

conda config --append channels conda-forge
Sebastian Viereck
  • 5,455
  • 53
  • 53