The basic difference is that “zypper up” will not do an update that requires vendor change (this is usually related to switching repos). And “zypper up” will only update. It normally won’t remove a package that is no longer in the distribution (no longer in any repo).
Most of the time, what they do is similar. But occasionally there’s a major change to a software package that needs to remove some older packages to install new packages with different names. In that case, only “zypper dup” will work.
I will describe what I am doing, and let you decide what you should do.
I have only:
- the standard repos put there by install;
- the packman repo
- the libdvdcss repo.
Note that the repo referring to the install media (I used a USB) is disabled.
I changed the priority of the packman repo to 98 (instead of the default 99). That gives the packman repo a preference over the others. If a package is in both the standard repo and packman, the packman version is normally used (but it doesn’t always work out that way – see below).
My normal practice is to use “zypper dup”.
Occasionally, that gives some conflict errors that I’m not sure about. So I abort that (say “no” at the “continue” prompt) and instead use “zypper up”. That avoids the conflict by not updating everything. Usually, the problem goes away by the next update. Or somebody will post about it on the factory mailing list.
I do occasionally see packages moving from “packman” to the opensuse repos, in spite of that priority difference. I think that happens when there would otherwise be a conflict, and “zypper dup” chooses to switch repos to resolve the problem. If I had used “zypper up” that would have left some packages not updated.
I also occasionally look for orphaned packages. You can get to those with Yast Software Management, and the “Package groups” view. I will delete orphaned packages if I know that won’t cause a problem. That keeps my system close to what a fresh install would provide.
This has mostly been working for me.
Some folk have added additional repos for other software. I don’t really have experience with doing that on Tumbleweed (not counting “krypton” which is a special case). My understanding is that the best advice in that case is to use “zypper up”. But it is probably then a good idea to follow that with “zypper dup -D”. That latter command will tell you what “zypper dup” would change, and you can use that as a guide on whether to manually make a few changes.
I hope that helps. Ask further questions if you are still unsure what to do.