Package Management – Update vs Upgrade in OpenSUSE

opensusepackage-managementupgradezypper

sudo zypper update

The following package updates will NOT be installed:
  amarok bluedevil choqok cln digikam digikam-lang GeoIP gstreamer-0_10 gstreamer-0_10-plugin-gnomevfs gstreamer-0_10-plugin-hal 
  gstreamer-0_10-plugins-base gstreamer-0_10-plugins-good gstreamer-0_10-plugins-good-lang k3b kaffeine kipi-plugins kipi-plugins-acquireimage 
  ksshaskpass ktorrent ktorrent-lang liba52-0 libavcodec52 libavformat52 libavutil50 libbluedevil1 libcares2 libGeoIP1 libgstapp-0_10-0 
  libgstinterfaces-0_10-0 libgstreamer-0_10-0 libgstreamer-0_10-0-32bit libidn libidn-32bit libktorrent3 libktorrent3-lang liblash1 liblzma5 libnetcdf4 
  libshout3 libssh2-1 libswscale0 libtag-extras1 libupnp6 libva1 libvlc5 libwavpack1 libx264-115 libxine1 libxine1-gnome-vfs libxine1-pulse linphone 
      mjpegtools netcdf NetworkManager-kde4-libs NetworkManager-openvpn-kde4 NetworkManager-pptp-kde4 NetworkManager-vpnc-kde4 openmpi oxygen-gtk 
  python-cairo python-gobject python-gobject-cairo python-gtk python-numpy python-qt4 python-simplejson python-sip shared-desktop-ontologies skanlite 
  sox taglib xz 

The following packages are going to be upgraded:
  dbus-1 dbus-1-32bit dbus-1-devel google-chrome-stable gstreamer-0_10-buzztard libgstapp-0_10-0-32bit libvlc5 libvlccore4 libx264-116 libxine1-codecs 
  python-virtualbox virtualbox virtualbox-devel virtualbox-host-kmp-default virtualbox-qt vlc vlc-aout-pulse vlc-gnome vlc-noX vlc-qt 

First off, why is zypper telling me about updates I need, then saying they won't be installed? Also, below it says ...packages will be UPGRADED. Is there a difference between those terms?

I ask because zypper accepts both update and upgrade flags.

Best Answer

I'm not familiar with Zypper, so take this answer with a grain of salt. I am familiar with APT, which Zypper draws some inspiration from; I may have missed important differences between the two.

As far as I can tell, zypper update tries to pull in the latest version of each package. But it does this in a relatively meek way: only more recent versions of already-installed packages from the same repository are considered for installation. zypper update doesn't install new packages, remove existing packages, or install a new package version from a different repository.

zypper dist-upgrade is more aggressive. It tries to bring your system in synch with what the repositories offer: after zypper dist-upgrade, you should have the same package versions as if you installed from scratch from the repositories as they are now.

Related Question