Что на самом деле означают эти два поля информации о пакете?
Используя 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 ответ
Для довольно продолжительного чтения смотрите: 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, где изменение должно быть описано.