1

используя 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? немного информации здесь, но не очень поучительно
  • Как называется поле Release (11.20090921gitdf3cb4.2.el6)? что такое конвенция?

1 ответ1

2

Для довольно длительного чтения смотрите: 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, где изменение должно быть описано.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .