что на самом деле означают эти два поля информации о пакете?

351
Sajuuk

используя CentOS 6.8, когда я печатаю yum install tcpdump, системные выходы:

Package 14:tcpdump-4.0.0-11.20090921gitdf3cb4.2.el6.x86_64 already installed and latest version 

Этот длинный фрагмент строки не помог, для получения дополнительной информации я набрал yum info tcpdumpследующее:

Name : tcpdump Arch : x86_64 Epoch : 14 Version : 4.0.0 Release : 11.20090921gitdf3cb4.2.el6 Size : 818 k Repo : installed From repo : base ... bla bla ... 

он разделил исходную строку имя пакета на несколько полей, Что я заинтересован в эти два поля: Epoch Release.

  • Что такое Epoch? немного информации здесь, но не очень поучительно
  • Как называется Releasefield ( 11.20090921gitdf3cb4.2.el6)? что такое конвенция?
0
[Информация об эпохе] (https://www.redhat.com/archives/rpm-list/2000-October/msg00075.html), по сути, расширение номера версии, чтобы «абсолютно» объявить пакет более новым. Соглашение для версии, вероятно, зависит от сопровождающего / репозитория. В этом случае это похоже на сборку git с даты 2009-09-21. Последний бит может указывать на коммит и номер версии. Одиннадцать впереди? Без понятия. Не существует фиксированной, универсальной схемы именования. Seth 6 лет назад 0

1 ответ на вопрос

1
msuchy

Для довольно длительного чтения смотрите: https://fedoraproject.org/wiki/Packaging:Versioning

Эпоха используется очень редко. Если он не определен, он установлен в 0 и не печатается. Эпоха используется для устранения пробелов в именовании. Например, у апстрима есть проект fooи версия 2009, и вдруг они решают сменить версию, и следующая версия будет 10. И теперь ваш путь обновления должен быть с foo-2009 до foo-10, но rpm обрабатывает foo-2009> foo-10 и не будет обновлять его. Таким образом, сопровождающий должен пересечь эпоху, и rpm сравнивает foo-2009 == 0: foo-2009 <1: foo-10.

Выпуск должен начинаться с 1, и каждый раз, когда вы выпускаете новый пакет - но с тем же tar.gz той же версии - вы должны увеличивать выпуск. Это можно изменить в пост-установочном скриптлете. Изменение требований времени выполнения. Перестройте из-за изменения в ABI требуемой библиотеки. Или потому что maintaner добавить патч. Обычно исправление причин безопасности. Формат поля выпуска не стандартизирован, поэтому вы можете только догадываться, почему сопровождающий использовал этот формат. И на самом деле вам не нужно угадывать, так как вы можете прочитать список изменений rpm, где изменение должно быть описано.

Похожие вопросы