Для того, щоб публікувати пакети RPM декількох різних версій певного програмного забезпечення, я шукаю спосіб вказати "номери" версій, які вважаються "оновленнями", і включати диференціацію кількох попередніх версій, таких як (для того, щоб ): "2.4.0 альфа 1", "2.4.0 альфа 2", "2.4.0 альфа 3", "2.4.0 бета-версія 1", "2.4.0 бета-версія 2", "кандидат на випуск 2.4.0", "2.4.0 остаточний", "2.4.1", "2.4.2" тощо.
Основна проблема, з якою я маю це, полягає в тому, що RPM вважає, що "2.4.0" з'являється раніше, ніж "2.4.0.alpha1", тому я не можу просто додати суфікс в кінці кінцевого номера версії.
Я міг би спробувати "2.4.0.alpha1", "2.4.0.beta1", "2.4.0.final", який би спрацював, за винятком "кандидата в реліз", який буде розглянуто пізніше, ніж "2.4.0.final ".
Я вважав альтернативою використання розділу "epoch:" номера версії RPM (префікс epoch: "розглядається перед основним номером версії, так що" 1: 2.4.0 "насправді раніше, ніж" 2: 1.0.0 ") . Поставивши часову позначку в полі epoch: всі версії впорядковуються так, як очікується RPM, оскільки їх версії, схоже, збільшуються в часі. Однак це не вдається, коли нові релізи робляться одночасно на кількох основних версіях (наприклад, 2.3.2 випускається після 2.4.0, але їх версія для RPM - "20121003: 2.3.2" і "20120928: 2.4. 0 ", а системи на версії 2.3.2 не можуть бути" оновлені "до 2.4.0, оскільки rpm сприймає це як старішу версію). У цьому випадку yum / zypper / тощо відмовляються від оновлення до 2.4.0, тому моя проблема.
Які номери версій я можу використовувати, щоб досягти цього, і переконайтесь, що RPM завжди вважає номери версій за порядком. Або якщо не номери версій, інший механізм упаковки RPM?
Примітка 1: Я хотів би зберегти поле "Випуск:" у специфікаційному файлі для його оригінальної мети (декілька випусків пакетів, включаючи зміни упаковки, для тієї ж версії пакуваного програмного забезпечення).
Примітка 2: Це повинно працювати на поточних виробничих версіях основних дистрибутивів, таких як RHEL / CentOS 6 та SLES 11. Але мене цікавлять рішення, які теж не мають, доки вони не передбачають перекомпіляції оборотів у хвилину!
Примітка 3: У системах, схожих на Debian, dpkg використовує спеціальний компонент у номері версії, який є символом "~" (tilde). Це змушує dpkg рахувати суфікс як "негативне" впорядкування, так що "2.4.0 ~ що-небудь" вийде перед "2.4.0". Тоді звичайне впорядкування застосовується після "~", тому "2.4.0 ~ альфа1" надходить до "2.4.0 ~ бета1", оскільки "альфа" надходить "бета" в алфавітному порядку. Мені не обов’язково хочеться використовувати ту саму схему для пакетів RPM (я впевнений, що такого еквівалента не існує), тому це просто FYI.