jtamames / SqueezeMeta

A complete pipeline for metagenomic analysis
GNU General Public License v3.0
357 stars 78 forks source link

Conda recipe conflict - Perl version and dependency conflicts #638

Closed MicroSeq closed 1 year ago

MicroSeq commented 1 year ago

Hello,

There appears to be an issue with conflicting dependencies with Perl when installed via Mamba on the Ubuntu 20.04 image used on our HPC cluster.I've tried a fresh install of Conda/Mamba to no avail.

Encountered problems while solving:

The environment can't be solved, aborting the operation

Do you have the specific versioning of all the Perl dependencies that work with 5.26 as that may solve the issue to grab whatever package is not being pulled from the repos? This is not defined in the .yaml file. Specifying just packages just leads to a cascade of incompatible packages pulled via conda.

Thanks!

fpusan commented 1 year ago

mamba create -n SqueezeMeta -c conda-forge -c bioconda -c fpusan squeezemeta=1.6 works for me (Ubuntu 20.04, fresh miniconda3 install) Any chance you have a .condarc file modifying your channel priorities even if your miniconda install is fresh?

MicroSeq commented 1 year ago

That was exactly the issue. I had forgot I had that generated with a Biobakery install =). Thanks!

fpusan commented 1 year ago

I suspected as much. .condarc files can sometimes be more dangerous than unspecified package versions... ;)

Now more seriously, the behaviour of .condarc has been bothering me for a while. I provide working installation instructions specifying the right channels in the right order so that everything works right. But a .condarc file that the user is often not even aware of (and lies outside the conda installation dir!) can and will mess that up.

I wonder whether specifying a version for each and every package as you suggested earlier would have actually worked in your case, I suspect that it would have still looked for the packages in the wrong place.

Do you still have that .condarc file somewhere? If so, can you put it back in place, and try to install again, but now adding the --override-channels flag. Hopefully that will make it work regardless of .condarc. If so, I will update the install instructions.

MicroSeq commented 1 year ago

Sadly, --override-channels was not sufficient to correct the problem with the original .condarc file restored.

GNU nano 4.8 .condarc ssl_verify: false channel_priority: strict channels:

fpusan commented 1 year ago

That is unfortunate, I will look more into this. Anyways thanks for reporting and testing!

fpusan commented 1 year ago

Turned out it was the strict channel priority messing things up. mamba create -c defaults -c conda-forge -c bioconda -c fpusan -n SqueezeMeta squeezemeta=1.6 --no-channel-priority --override-channels should work even with your .condarc file