SDB:Обновление со сменой поставщика
Содержание
Введение
Version: 11.2+ Материал данной статьи применим к openSUSE версии 11.2 и новее.
Менеджер пакетов Zypp использует принцип привязки к поставщику. Это значит следующее: при обновлении системы установленные пакеты не будут обновлены до новой версии, если она (новая версия) не доступна у того же поставщика (например, того же репозитория из которого был установлен пакет).
Преимущества привязки к поставщику:
- Нет риска случайной замены стабильных версий установленных пакетов на экспериментальные версии из других репозиториев при обновлении.
- Нет риска получения состояния пинг-понга каждый раз при обновлении, когда несколько пакетов имеются в более чем одном репозитории.
Недостатки привязки к поставщику:
- Обновления для установки которых требуется осуществить смену поставщика частично скрыты в YaST
- Обновление/замена поставщика пакета требует больше работы
- Менеджер пакетов будет запрашивать подтверждение смены поставщика, что может раздражать, пугать или сбивать с толку.
Выполнение обновления со сменой поставщика
Далее описываются методы, которыми можно пользоваться для выполнения обновления со сменой поставщика.
Смена поставщика для отдельного пакета
Используя YaST
Найдите пакет который необходимо обновить и перейдя на вкладку Версии выберите требуемого поставщика пакета.
Используя zypper
Установить пакет определенной версии можно выполнил следующую команду:
zypper install 'amarok=2.3.1'
или указав репозиторий:
zypper install --from [repository] [package]
Полная замена поставщика
Используя YaST
Для замены поставщика для всех установленных пакетов на определенный репозиторий откройте вкладку Репозитории, выберите там нужный и нажмите на Перевести системные пакеты на версии из этого репозитория
Используя zypper
Для замены поставщика для всех пакетов в определенном репозитории выполните следующую команду:
zypper dup --from [repository]
Эта статья содержит фрагменты на иностранном языке. Вы можете помочь переведя её до конца. (cм. руководство по переводу) |
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 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.
В файле /etc/zypp/zypp.conf измените
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.