2016-09-21 14:09:30 |
Brian Hunter |
description |
Our plugin repository contains packages that also exist in the core MOS repositories.
Some of these are commonly used packages, for example, python-troveclient.
In 9.0, we can no longer install such packages using the default mechanisms.
We find that 9.0 introduces changes whereby no /etc/apt/preferences.d/<plugin>.pref file is created, so plugin repositories get the default priority.
All packages that come from plugin's repo will have the priority "500".
All packages from mos are assigned 1050, so they will always 'win' - be picked as candidate to be installed.
8.0 created a preferences file that pinned plugin repositories to 1100. 9.0 no longer does this.
8.0 assumed that if a plugin provided a package, it was to overwrite the core packages.
9.0 assumes the opposite - that no plugin will overwrite packages provided by core mos repos.
Tools to reproduce;
- create a plugin that provides one package, say 'python-troveclient'. Create this intentionally with a higher version than the core mos one, perhaps 1.99.0
- write some plugin tasks/puppet to install this one package [without specifying a version #]
- observe that it doesn't work. Further observe when you run 'apt-cache policy python-troveclient' - on I beleive any provisioned host in the environment- you see different results in 8.0 and 9.0. |
Our plugin repository contains packages that also exist in the core MOS repositories.
Some of these are commonly used packages, for example, python-troveclient.
In 9.0, we can no longer install such packages using the default mechanisms.
We find that 9.0 introduces changes whereby no /etc/apt/preferences.d/<plugin>.pref file is created, so plugin repositories get the default priority.
All packages that come from plugin's repo will have the priority "500".
All packages from mos are assigned 1050, so they will always 'win' - be picked as candidate to be installed.
8.0 created a preferences file that pinned plugin repositories to 1100. 9.0 no longer does this.
8.0 assumed that if a plugin provided a package, it was to overwrite the core packages.
9.0 assumes the opposite - that no plugin will overwrite packages provided by core mos repos.
Tools to reproduce;
- create a plugin that provides one package, say 'python-troveclient'. Create this intentionally with a higher version than the core mos one, perhaps 1.99.0
- write some plugin tasks/puppet to install this one package [without specifying a version #]
- observe that it doesn't work. [EDIT: Observe that the mos version of
the package is installed, despite the plugin version being higher]
Further observe when you run 'apt-cache policy python-troveclient' - on I beleive any provisioned host in the environment- you see different results in 8.0 and 9.0. |
|