Home Wiki > SDB:Обновление со сменой поставщика
Sign up | Login

SDB:Обновление со сменой поставщика

tagline: Материал из openSUSE

Эта статья объяснит концепцию привязки к поставщику и расскажет о том, как переопределить стандартное поведение.

Введение

Версия: 11.2+Материал данной статьи применим к openSUSE версии 11.2 и новее.

Менеджер пакетов Zypp использует принцип привязки к поставщику. Это значит следующее: при обновлении системы установленные пакеты не будут обновлены до новой версии, если она (новая версия) не доступна у того же поставщика (например, того же репозитория из которого был установлен пакет).

Преимущества привязки к поставщику:

  • Нет риска случайной замены стабильных версий установленных пакетов на экспериментальные версии из других репозиториев при обновлении.
  • Нет риска получения состояния пинг-понга каждый раз при обновлении, когда несколько пакетов имеются в более чем одном репозитории.

Недостатки привязки к поставщику:

  • Обновления для установки которых требуется осуществить смену поставщика частично скрыты в YaST
  • Обновление/замена поставщика пакета требует больше работы
  • Менеджер пакетов будет запрашивать подтверждение смены поставщика, что может раздражать, пугать или сбивать с толку.

Выполнение обновления со сменой поставщика

Далее описываются методы, которыми можно пользоваться для выполнения обновления со сменой поставщика.

Смена поставщика для отдельного пакета

Используя YaST

Найдите пакет который необходимо обновить и перейдя на вкладку Версии выберите требуемого поставщика пакета.

Yast-vendor-package.png

Используя zypper

Установить пакет определенной версии можно выполнил следующую команду:

zypper install 'amarok=2.3.1'

или указав репозиторий:

zypper install --from [repository] [package]

Полная замена поставщика

Используя YaST

Для замены поставщика для всех установленных пакетов на определенный репозиторий откройте вкладку Репозитории, выберите там нужный и нажмите на Перевести системные пакеты на версии из этого репозитория

Yast-vendor-repo.png

Используя zypper

Для замены поставщика для всех пакетов в определенном репозитории выполните следующую команду:

zypper dup --from [repository]

Localize.png Эта статья содержит фрагменты на иностранном языке. Вы можете помочь переведя её до конца. (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 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.

В файле /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.