Transition to disttag — различия между версиями

Материал из ALT Linux Wiki
Перейти к: навигация, поиск
м (Проверка Conflicts: шаблоны-случаи для тестирования результатов нового rpm-build)
м (Проверка Conflicts старым rpm: typo)
Строка 27: Строка 27:
 
====Проверка Conflicts: N > E:V-R (без disttag)====
 
====Проверка Conflicts: N > E:V-R (без disttag)====
  
=====Если ставится одновременно с пакетом N = E:V-R:D====
+
=====Если ставится одновременно с пакетом N = E:V-R:D=====
  
=====Если ставится одновременно с пакетом N = E:V-R====
+
=====Если ставится одновременно с пакетом N = E:V-R=====
  
=====Если ставится в систему с пакетом N = E:V-R:D====
+
=====Если ставится в систему с пакетом N = E:V-R:D=====
  
=====Если ставится в систему с пакетом N = E:V-R====
+
=====Если ставится в систему с пакетом N = E:V-R=====
  
=====Если уже стоит, а ставится пакет N = E:V-R:D====
+
=====Если уже стоит, а ставится пакет N = E:V-R:D=====
  
=====Если уже стоит, а ставится пакет N = E:V-R====
+
=====Если уже стоит, а ставится пакет N = E:V-R=====
  
 
====Проверка Conflicts: N > E:V-R:D====
 
====Проверка Conflicts: N > E:V-R:D====
  
=====Если ставится одновременно с пакетом N = E:V-R:D====
+
=====Если ставится одновременно с пакетом N = E:V-R:D=====
  
=====Если ставится одновременно с пакетом N = E:V-R====
+
=====Если ставится одновременно с пакетом N = E:V-R=====
  
=====Если ставится в систему с пакетом N = E:V-R:D====
+
=====Если ставится в систему с пакетом N = E:V-R:D=====
  
=====Если ставится в систему с пакетом N = E:V-R====
+
=====Если ставится в систему с пакетом N = E:V-R=====
  
=====Если уже стоит, а ставится пакет N = E:V-R:D====
+
=====Если уже стоит, а ставится пакет N = E:V-R:D=====
  
=====Если уже стоит, а ставится пакет N = E:V-R====
+
=====Если уже стоит, а ставится пакет N = E:V-R=====
  
 
====Проверка Conflicts: N < E:V-R (без disttag)====
 
====Проверка Conflicts: N < E:V-R (без disttag)====
  
=====Если ставится одновременно с пакетом N = E:V-R:D====
+
=====Если ставится одновременно с пакетом N = E:V-R:D=====
  
=====Если ставится одновременно с пакетом N = E:V-R====
+
=====Если ставится одновременно с пакетом N = E:V-R=====
  
=====Если ставится в систему с пакетом N = E:V-R:D====
+
=====Если ставится в систему с пакетом N = E:V-R:D=====
  
=====Если ставится в систему с пакетом N = E:V-R====
+
=====Если ставится в систему с пакетом N = E:V-R=====
  
=====Если уже стоит, а ставится пакет N = E:V-R:D====
+
=====Если уже стоит, а ставится пакет N = E:V-R:D=====
  
=====Если уже стоит, а ставится пакет N = E:V-R====
+
=====Если уже стоит, а ставится пакет N = E:V-R=====
  
 
====Проверка Conflicts: N < E:V-R:D====
 
====Проверка Conflicts: N < E:V-R:D====
  
=====Если ставится одновременно с пакетом N = E:V-R:D====
+
=====Если ставится одновременно с пакетом N = E:V-R:D=====
  
=====Если ставится одновременно с пакетом N = E:V-R====
+
=====Если ставится одновременно с пакетом N = E:V-R=====
  
=====Если ставится в систему с пакетом N = E:V-R:D====
+
=====Если ставится в систему с пакетом N = E:V-R:D=====
  
=====Если ставится в систему с пакетом N = E:V-R====
+
=====Если ставится в систему с пакетом N = E:V-R=====
  
=====Если уже стоит, а ставится пакет N = E:V-R:D====
+
=====Если уже стоит, а ставится пакет N = E:V-R:D=====
  
=====Если уже стоит, а ставится пакет N = E:V-R====
+
=====Если уже стоит, а ставится пакет N = E:V-R=====

Версия 13:25, 22 января 2019


В "идентификаторах" пакетов (основных Provides) появился disttag (D: N-E:V-R:D), который различает разные сборки пакета из одних и тех же исходников (E:V-R). Disttag имеет особую семантику при участии в удовлетворении зависимостей и т.п., а также при принятии решения об обновлении (какая сборка пакета будет предпочтительна).

Содержание

Желаемое поведение

Желаемое поведение rpm ("rpm-install") в отношении disttag вот такое:

...

Мы полагаем, что такое поведение уже реализовано в "новом" rpm ("rpm-install"), а именно 4.13.0.1-alt5.

Особенности поведения "нового" и "старого" rpm ("rpm-install") в отношении disttag

Здесь нас особенно волнует поведение "старого" rpm ("rpm-install"), а именно 4.13.0.1-alt4 или старого из p8 и пр., при столкновении с пакетом, где уже используется disttag (был добавлен туда "новым" rpm-build).

Что касается "нового" rpm ("rpm-install"), то он задуман так, что требования N > E:V-R:D и N > E:V-R (без disttag) будут удволетворяться одним и тем же множеством пакетов (потому что disttag-и несравнимы), а значит, будут иметь одинаковый эффект:

  • Requires: N > E:V-R:D и Requires: N > E:V-R (без disttag);
  • Conflicts: N > E:V-R:D и Conflicts: N > E:V-R (без disttag);
  • Obsoletes: N > E:V-R:D и Obsoletes: N > E:V-R (без disttag).

То же самое верно для другого строгого знака: требования N < E:V-R:D и N < E:V-R (без disttag) будут удволетворяться одним и тем же множеством пакетов.

Проверка Conflicts старым rpm

Проверка Conflicts: N > E:V-R (без disttag)

Если ставится одновременно с пакетом N = E:V-R:D
Если ставится одновременно с пакетом N = E:V-R
Если ставится в систему с пакетом N = E:V-R:D
Если ставится в систему с пакетом N = E:V-R
Если уже стоит, а ставится пакет N = E:V-R:D
Если уже стоит, а ставится пакет N = E:V-R

Проверка Conflicts: N > E:V-R:D

Если ставится одновременно с пакетом N = E:V-R:D
Если ставится одновременно с пакетом N = E:V-R
Если ставится в систему с пакетом N = E:V-R:D
Если ставится в систему с пакетом N = E:V-R
Если уже стоит, а ставится пакет N = E:V-R:D
Если уже стоит, а ставится пакет N = E:V-R

Проверка Conflicts: N < E:V-R (без disttag)

Если ставится одновременно с пакетом N = E:V-R:D
Если ставится одновременно с пакетом N = E:V-R
Если ставится в систему с пакетом N = E:V-R:D
Если ставится в систему с пакетом N = E:V-R
Если уже стоит, а ставится пакет N = E:V-R:D
Если уже стоит, а ставится пакет N = E:V-R

Проверка Conflicts: N < E:V-R:D

Если ставится одновременно с пакетом N = E:V-R:D
Если ставится одновременно с пакетом N = E:V-R
Если ставится в систему с пакетом N = E:V-R:D
Если ставится в систему с пакетом N = E:V-R
Если уже стоит, а ставится пакет N = E:V-R:D
Если уже стоит, а ставится пакет N = E:V-R