zypper repositories, priorities and a question

Hallo,
Does anybody knows if zypper ignores priorities?
I have setup the KDE 4.11 repositories with priority 98 (instead of 99 for the rest of them), but the zypper up is not updating the KDE.
Am I missing something here?


 1 | Java                      | Java                         | No      | No      |   99     | http://download.opensuse.org/repositories/Java:/packages/openSUSE_12.1                                       
 2 | KDE 4.11 - Extra          | KDE 4.11 - Extra             | Yes     | No      |   **98**     | http://download.opensuse.org/repositories/KDE:/Extra/KDE_Release_411_openSUSE_12.3/                          
 3 | KDE 4.11 - Telepathy      | KDE 4.11 - Telepathy         | No      | No      |   **98**     | http://download.opensuse.org/repositories/KDE:/Unstable:/Playground:/Telepathy/KDE_Release_411_openSUSE_12.3/
 4 | KDE 4.11 Core             | KDE 4.11 Core                | Yes     | No      |   **98**     | http://download.opensuse.org/repositories/KDE:/Release:/411/openSUSE_12.3/                                   
 5 | KDE3                      | KDE3                         | Yes     | Yes     |   99     | http://download.opensuse.org/repositories/KDE%3a/KDE3/openSUSE_12.3                                          
 6 | LibreOffice               | LibreOffice                  | Yes     | No      |   99     | http://download.opensuse.org/repositories/LibreOffice:/Stable/openSUSE_12.3/                                 
 7 | Main_Repository_(NON-OSS) | Main Repository (NON-OSS)    | Yes     | No      |   99     | http://download.opensuse.org/distribution/12.3/repo/non-oss/                                                 
 8 | Main_Repository_(OSS)     | Main Repository (OSS)        | Yes     | No      |   99     | http://download.opensuse.org/distribution/12.3/repo/oss/                                                     
 9 | Main_Update_Repository    | Main Update Repository       | Yes     | Yes     |   99     | http://download.opensuse.org/update/12.3                      



ypper up
Loading repository data...
Reading installed packages...

The following package updates will NOT be installed:
  MozillaFirefox MozillaFirefox-translations-common akonadi akonadi-runtime akregator amarok ark arts bluedevil branding-openSUSE cairo-dock cairo-tools 
  calligra-l10n-el create-resources digikam digikam-doc digikam-lang dolphin dynamic-wallpaper-branding-openSUSE fileshareset gfxboot-branding-openSUSE 
  gimp-branding-openSUSE grub2-branding-openSUSE gstreamer gstreamer-0_10 gstreamer-0_10-lang gstreamer-0_10-plugin-esd gstreamer-0_10-plugin-gnomevfs 
  gstreamer-0_10-plugins-bad gstreamer-0_10-plugins-bad-lang gstreamer-0_10-plugins-base gstreamer-0_10-plugins-base-lang gstreamer-0_10-plugins-good 
  gstreamer-0_10-plugins-good-lang gstreamer-lang gstreamer-plugins-base gstreamer-plugins-base-lang gtk2-engine-oxygen gtk2-theme-oxygen gwenview 
  kactivities4 kaddressbook kate kcalc kcharselect .....

All mine are 99

Then just use the switcher
This is the principle
https://dl.dropboxusercontent.com/u/10573557/Switcher%20Pics/R49_switch.png

You have to do “dup” instead of “up”.

zypper dup --from 2 --from 3 --from 4

And I would more specify the URLs of the KDE repos to the correct repositories and add "KDE_Release_411_openSUSE_12.3/ to them.

[Offtopic]
I never used dup for that in the past. For the moment, I have used the “Switch” from YaST, but I would prefer the CLI option.
[/Offtopic]

I insist. Since the KDE 4 repos have a “higher” priority, zypper have proceed to the update. Why it did not do that? Is the dup the “official” way to proceed with KDE updates?

Because there is the need for a repo change you have to do dup.

On 08/30/2013 07:26 AM, tpe pecked at the keyboard and wrote:
> Hallo,
> Does anybody knows if zypper ignores priorities?
> I have setup the KDE 4.11 repositories with priority 98 (instead of 99
> for the rest of them), but the zypper up is not updating the KDE.
> Am I missing something here?
>
>
>

The reason the packages are not being installed is because they require
a vendor change (different repo). You need to manually force the repo
change either by using zypper dup (not recommended), zypper in <package
name w/ the version number> (use zypper in <package name> to get it) or
use YaST to install the package. Once the package is using the different
repo it will continue using it.

HTH a little.

Ken

On 2013-08-30 15:26, tpe wrote:
>
> I never used dup for that in the past. For the moment, I have used the
> “Switch” from YaST, but I would prefer the CLI option.
>
>
> I insist. Since the KDE 4 repos have a “higher” priority, zypper have
> proceed to the update. Why it did not do that? Is the dup the “official”
> way to proceed with KDE updates?

Priorities matter, but vendor change (or no change) takes precedence. A
dup is one way of switching vendor, but it is rather drastic and may
cause other problems. I prefer going to yast and switching the packages
I want.


Cheers / Saludos,

Carlos E. R.
(from 12.3 x86_64 “Dartmouth” at Telcontar)

The switch to KDE 4.11 needs a lot of packages to change vendor. A “zypper in <package name>” does nothing than indicate that there is an update candidate available:

zypper in dolphin
Loading repository data...
Reading installed packages...
'dolphin' is already installed.
There is an update candidate for 'dolphin', but it is from different vendor. Use 'zypper install dolphin-4.11.0-348.3.x86_64' to install this candidate.
Resolving package dependencies...

Nothing to do.

You need to force the install of the package with --force. But this will cause lot of messages that there are many packages that can not be installed because of vendor lock:

zypper in -f dolphin
Loading repository data...
Reading installed packages...
Forcing installation of 'dolphin-4.11.0-348.3.x86_64' from repository 'KDE-411'.
Resolving package dependencies...

Problem: dolphin-4.11.0-348.3.x86_64 requires kdebase4-libkonq = 4.11.0, but this requirement cannot be provided
  uninstallable providers: kdebase4-libkonq-4.11.0-348.3.i586[KDE-411]
                   kdebase4-libkonq-4.11.0-348.3.x86_64[KDE-411]
 Solution 1: Following actions will be done:
  install kdebase4-libkonq-4.11.0-348.3.x86_64 (with vendor change)
    openSUSE  -->  obs://build.opensuse.org/KDE
  install konqueror-plugins-4.11.0-348.3.x86_64 (with vendor change)
    openSUSE  -->  obs://build.opensuse.org/KDE
  install konqueror-4.11.0-348.3.x86_64 (with vendor change)
    openSUSE  -->  obs://build.opensuse.org/KDE
  install qt4-qtscript-0.2.0-20.2.x86_64 (with vendor change)
    openSUSE  -->  obs://build.opensuse.org/KDE
  install libqt4-qt3support-4.8.5-322.1.x86_64 (with vendor change)
    openSUSE  -->  obs://build.opensuse.org/KDE
  install libqt4-sql-4.8.5-322.1.x86_64 (with vendor change)
    openSUSE  -->  obs://build.opensuse.org/KDE
  install libqt4-sql-mysql-4.8.5-324.1.x86_64 (with vendor change)
    openSUSE  -->  obs://build.opensuse.org/KDE
  install soprano-backend-redland-2.9.3-123.3.x86_64 (with vendor change)
    openSUSE  -->  obs://build.opensuse.org/KDE
  install soprano-backend-virtuoso-2.9.3-124.2.x86_64 (with vendor change)
    openSUSE  -->  obs://build.opensuse.org/KDE
 Solution 2: do not install dolphin-4.11.0-348.3.x86_64
 Solution 3: do not install dolphin-4.11.0-348.3.x86_64
 Solution 4: break dolphin-4.11.0-348.3.x86_64 by ignoring some of its dependencies

Choose from above solutions by number or cancel [1/2/3/4/c] (c): c

So for this case when many packages need vendor change the best command is " zypper dup --from $REPOSITORY" (and it is made for such cases). Sure, dup is dangerous. So you will have be careful.

On 2013-08-30 16:36, zerum wrote:
> So for this case when many packages need vendor change the best command
> is " zypper dup --from $REPOSITORY" (and it is made for such cases).

No, “zypper dup” was designed for full distribution upgrade, aimed at
the upgrade of factory from one week to the next. I know, I was there.
After we tested it (in factory), during several cycles, with many
reports, they “released” it.

You can read about it in the factory mail list archive. :slight_smile:

The usage you describe came later.


Cheers / Saludos,

Carlos E. R.
(from 12.3 x86_64 “Dartmouth” at Telcontar)

Once the switches are in place

zypper up

is sufficient

What switches?

The switches to new vendors.

To keep it all in one place:

“man zypper” says

   update (up) [options] [packagename] ...
          Update installed packages with newer versions, where possible.

** This command will not update packages which would require change of package vendor unless the vendor is specified in /etc/zypp/vendors.d**, or which would require manual resolution of problems with dependencies. Such non-installable updates will then be listed in separate section of the summary as “The following package updates will NOT be installed:”.

And that’s it. No matter what priorities you use, zypper up “will not update packages which would require change of package vendor”.

  • You can make zypper treat different vendors as the same one with a file at /etc/zypp/vendors.d
  • You can totally disable the vendor check with the option solver.allowVendorChange from /etc/zypp/zypp.conf
  • “zypper dup” doesn’t do any vendor check, is only “zypper up”

The “don’t change vendor” rule obviously only applies to updates, not to new installs, since new installs don’t have an “vendor of the installed package” to compare to.

If you want to use the packages from the KDE 4.11 repositories, somehow make zypper install them once (use one of the update options that ignore the vendor or manually select the packages). Once you already have the packages from the KDE 4.11 repositories, a normal “zypper up” will continue updating from the KDE 4.11 repositories since that will be the vendor of the installed packages.

Switch like this
Eg: https://dl.dropboxusercontent.com/u/10573557/Switcher%20Pics/R49_switch.png