Как сравнить два номера версии пакета

2

Я пишу скрипт на PHP, который должен сравнить две версии пакета numbers , чтобы определить, что является более новым.

У PHP есть удобная функция, называемая version_compare() , но она действительно путается с некоторыми из более креативных номеров версий. Например, version_compare() считает, что 0.9.8g-16ubuntu3.1 новее, чем 0.9.8o-1ubuntu4.4 .

Кто-нибудь знает, как я могу заставить это работать?

Я рад запускать любые сценарии командной строки, используя exec() .

    
задан Stephen RC 30.07.2012 в 10:44
источник

1 ответ

5

взгляните на опцию dpkg --compare-versions , она будет вы можете попросить dpkg выполнить сравнение:)

dpkg --compare-versions 0.9.8g-16ubuntu3.1 lt 0.9.8o-1ubuntu4.4

вернет 0, это означает, что 0.9.8g-16ubuntu3.1 is lt (меньше, & lt;) до 0.9.8o-1ubuntu4.4

    
ответ дан Cédric Julien 30.07.2012 в 10:51
источник