SDB:Vendor change update
tagline: From openSUSE
- 1 Overview
- 2 Performing Vendor change updates
- 3 Allowing Vendor change in general
The package manager Zypp uses the vendor stickyness concept. This means that when you update your system, already installed packages will not be updated to a newer version, if the newer version is provided by a different vendor.
Advantages of vendor stickyness:
- You don't risk accidentally replacing stable versions of installed packages with experimental versions from a different repository when updating.
- You won't risk packages ping-ponging between different repositories every time you update, when the same package exists in more than one repository.
Disadvantages of vendor stickyness:
- Available updates requiring a vendor change are somewhat hidden in YaST
- Updating/changing a package to a different vendor requires a bit more work
- Now and then the package manager will ask you if you want to allow vendor change, which can be annoying, scary or confusing.
Performing Vendor change updates
These are the different methods you can use to perform vendor change updates.
Single package Vendor change
Search for the package you want to update, and then go to the Versions tab and select the version you want to install.
Install the package with zypper specifying the version you want, example:
zypper install 'amarok=2.3.1'
Or by specifying a repository:
zypper install --from [repository] [package]
Full repository Vendor change
If you want to switch all installed packages to the versions in a specific repository, open the Repositories tab, select the desired repository and click on Switch system packages to the versions in this repository
You can switch vendor for all packages in a repository using zypper too:
zypper dup --from [repository]
Allowing Vendor change in general
Allowing Vendor change for selected repositories
You can define a list of repositories having different "vendors" as equivalent by creating a file in the /etc/zypp/vendors.d/ directory with a similar content:
[main] vendors = suse,opensuse,obs://build.suse.de,Packman,http://packman.links2linux.de
You can find the vendor with YaST ("Versions" tab) or the command line "zypper if <package>".
- You can use any file name, but each file in this directory reflects a group of equivalent vendors.
- Libzypp makes an string comparision (like strncmp, case-insensitive) whereas the beginning of the strings are compared only.e.G. vendor "opensuse11.0" is compatible to "openSUSE".
Disabling Vendor stickiness
If you wish you can disable vendor stickyness completely - in this case the package manager will not ask permission to change vendor for packages, and updating will just install whatever package has the highest version number, regardless of where it comes from.
In /etc/zypp/zypp.conf set
solver.allowVendorChange = true
Now zypper up will install the newest versions available from any vendor. And YaST will mark packages where an update is available with blue text, even if the update is from a different vendor.