When I do conda update -n base --all
, I get this:
The following packages will be UPDATED:
libmamba artifactory/api/conda/conda-forge::li~ --> pkgs/main::libmamba-1.5.8-h99b1521_2
libmambapy artifactory/api/conda/conda-forge::li~ --> pkgs/main::libmambapy-1.5.8-py311h77c03ed_2
pybind11-abi artifactory/api/conda/conda-forge::py~ --> pkgs/main::pybind11-abi-5-hd3eb1b0_0
The following packages will be DOWNGRADED:
fmt 10.2.1-h181d51b_0 --> 9.1.0-h181d51b_0
libarchive 3.7.2-h313118b_1 --> 3.6.2-h6f8411a_1
On the next invocation of conda update -n base --all
I get
The following packages will be UPDATED:
fmt 9.1.0-h181d51b_0 --> 10.2.1-h181d51b_0
libarchive 3.6.2-h6f8411a_1 --> 3.7.2-h313118b_1
The following packages will be SUPERSEDED by a higher-priority channel:
libmamba pkgs/main::libmamba-1.5.8-h99b1521_2 --> artifactory/api/conda/conda-forge::libmamba-1.5.8-h3f09ed1_0
libmambapy pkgs/main::libmambapy-1.5.8-py311h77c~ --> artifactory/api/conda/conda-forge::libmambapy-1.5.8-py311h0317a69_0
pybind11-abi pkgs/main::pybind11-abi-5-hd3eb1b0_0 --> artifactory/api/conda/conda-forge::pybind11-abi-4-hd8ed1ab_3
and the cycle repeats.
I.e., I never get All requested packages already installed
.
Is there a way to avoid this insanity?
PS1: conda 24.5.0
PS2: After RTFM, the answer turned out to be
conda config --set channel_priority flexible
(it was false
before -- dunno why, I think I copied it from the local docs without thinking).
You have a configuration where conda finds a higher version of fmt
and libarchive
in a lower priority channel, so it installs the updates along with equivalent-versioned related packages from that channel.
Then it finds the same version numbers of the libmamba and pybind11 packages in your primary channel so it installs those, but has to downgrade fmt and libarchive.
You can do any of the following:
<channel>::<package>
specconda update -n base --all conda-forge::fmt conda-forge::libarchive
conda update -n base --all -c conda-forge -c defaults
conda config --prepend channels conda-forge