Why zypper up insists on installing some packages?

I’m tired of zypper trying to install some packages that are not needed by any other package. For example, this is just happened:



➜  ~  sudo zypper dup
root's password:
Warning: You are about to do a distribution upgrade with all enabled repositories. Make sure these repositories are compatible before you continue. See 'man zypper' for more information about this command.
Retrieving repository '13.2 update' metadata .................................................................................................................................................................[done]
Building repository '13.2 update' cache ......................................................................................................................................................................[done]
Retrieving repository 'google-talkplugin' metadata ...........................................................................................................................................................[done]
Building repository 'google-talkplugin' cache ................................................................................................................................................................[done]
Loading repository data...
Reading installed packages...
Computing distribution upgrade...


The following 2 NEW packages are going to be installed:
  vim vim-data 


The following 10 packages are going to be upgraded:
  gtk3-branding-openSUSE gtk3-data gtk3-devel gtk3-immodule-amharic gtk3-immodule-inuktitut gtk3-immodule-thai gtk3-immodule-vietnamese gtk3-tools libgtk-3-0 typelib-1_0-Gtk-3_0 


10 packages to upgrade, 2 new.
Overall download size: 13.5 MiB. Already cached: 0 B  After the operation, additional 26.6 MiB will be used.
Continue? [y/n/? shows all options] (y): 



I removed vim and marked it as “never install” because I’m using a custom build. None of the updated packages depend on vim pacakages. I don’t understand why it keeps trying to install those packages.

Any ideas what’s going on? Is there a working version of “never install” in yast package manager?

Where did you mark it as “never install”?
In YaST?
That should be respected by zypper. But you can also lock packages with zypper. The command is “al” (add lock), see “zypper al --help” for details.

OTOH, in your example you ran “zypper dup”, which is a “Distribution UPgrade”, i.e. an upgrade from one openSUSE (13.1 e.g.) version to another (13.2 e.g.). This might ignore those locks by design (I’m not sure at the moment).

You should never use “zypper dup” for normal updates, unless you run Tumbleweed of course.
Use “zypper patch” to only install official “patches” from the update repo, or “zypper up” to install updates from all repos.

Then stop using zypper dup and use zypper up which updates existing packages and installs them if a dependency requires.