dr-joe-wirth / primerForge

software to identify primers that can distinguish genomes
Apache License 2.0
11 stars 4 forks source link

Failed manual installation #20

Closed mbhall88 closed 3 weeks ago

mbhall88 commented 3 weeks ago

This issues is part of the JOSS review https://github.com/openjournals/joss-reviews/issues/6850

When attempting to perform a manual install I get the following error

$ conda env create -f environment.yml
Channels:
 - bioconda
 - defaults
 - conda-forge
Platform: linux-64
Collecting package metadata (repodata.json): done
Solving environment: failed
Channels:
 - bioconda
 - defaults
 - conda-forge
Platform: linux-64
Collecting package metadata (repodata.json): done
Solving environment: failed

LibMambaUnsatisfiableError: Encountered problems while solving:
  - package biopython-1.81-py39hf860d4a_1 is excluded by strict repo priority
  - package primer3-py-2.0.0-py311hec16e2b_0 requires libgcc-ng >=12, but none of the providers can be installed

My conda version is 24.5.0

dr-joe-wirth commented 3 weeks ago

this is interesting. it works for me using version 23.1.0. i will try to look further into this.

in the meantime, can you tell me what your parameter channel_priority is set to? mine is set to flexible, and it fails if i set it to strict (although it is different from your error). you can check/modify using the following commands:

getting current value

$ conda config --show channel_priority

changing current value to flexible

$ conda config --set channel_priority flexible

getting additional information about channel_priority

$ conda config --describe channel_priority
# # channel_priority (ChannelPriority)
# #   Accepts values of 'strict', 'flexible', and 'disabled'. The default
# #   value is 'flexible'. With strict channel priority, packages in lower
# #   priority channels are not considered if a package with the same name
# #   appears in a higher priority channel. With flexible channel priority,
# #   the solver may reach into lower priority channels to fulfill
# #   dependencies, rather than raising an unsatisfiable error. With channel
# #   priority disabled, package version takes precedence, and the
# #   configured priority of channels is used only to break ties. In
# #   previous versions of conda, this parameter was configured as either
# #   True or False. True is now an alias to 'flexible'.
# # 
# channel_priority: flexible

if your priority is strict can you please try setting it to flexible?

mbhall88 commented 3 weeks ago

Mine is set to strict. However, I am not keen to change this as bioconda require you to set a strict channel priority too. And I suspect most other users will be in the same boat as me....

Though I have figured out the issue. It's the ordering of the channels in the environment file you supply. When I switch it to

channels:
  - conda-forge
  - bioconda
  - defaults

as in the bioconda setup, it installs as expected.

dr-joe-wirth commented 3 weeks ago

thanks for this information. i have revised the file to be compatible with strict channel priority