anaconda update all possible packages?
I tried the
conda search --outdated, there are lots of outdated packages, for example the scipy is 0.17.1 but the latest is 0.18.0. However, when I do the
conda update --all. It will not update any packages.
conda update --all --alt-hint Fetching package metadata ....... Solving package specifications: .......... # All requested packages already installed. # packages in environment at /home/user/opt/anaconda2: #
I can update those packages separately. I can do
conda update scipy. But why I cannot update all of them in one go?
TL;DR: dependency conflicts
You are right:
conda update --all
is actually the way to go. Conda always tries to upgrade the packages to the newest version in the series (say Python 2.x or 3.x). But it is possible that there are dependency conflicts (which prevent a further upgrade). Conda usually warns very explicitly if they occur.
e.g. X requires Y <5.0, so Y will never be >= 5.0
That's why you 'cannot' upgrate them all.
Considering your update : You can upgrade them each separately, but doing so will not only include an upgrade but also a downgrade of another package as well. Say, to add to the example above:
X > 2.0 requires Y < 5.0, X < 2.0 requires Y > 5.0
So upgrading Y > 5.0 implies downgrading X to < 2.0 and vice versa.
( this is a pedagogical example, of course, but it's the same in reality, usually just with more complicated dependencies and sub-dependencies )
So you still cannot upgrade them all by doing the upgrades separately; the dependencies are just not satisfiable so earlier or later, an upgrade will downgrade an already upgraded package again. Or break the compatibility of the packages (which you usually don't want!), which is only possible by explicitly invoking an ignore-dependencies and force -command. But that is only to hack your way around issues, definitely not the normal-user case!