Я пишу скрипт на PHP, который должен сравнить два номера версии пакета , чтобы определить, что новее.
В PHP есть удобная функция под названием version_compare()
, но она действительно путается с некоторыми из более креативных номеров версий. Например, version_compare()
считает, что 0.9.8g-16ubuntu3.1
новее, чем 0.9.8o-1ubuntu4.4
.
Кто-нибудь знает, как я могу заставить это работать?
Я счастлив запускать любые сценарии командной строки, используя exec()
.
взгляните на опцию dpkg --compare-version , она позволит вам попросить dpkg выполнить сравнение:)
dpkg --compare-versions 0.9.8g-16ubuntu3.1 lt 0.9.8o-1ubuntu4.4
вернет 0, что означает 0.9.8g-16ubuntu3.1
равно lt (меньше, чем <) - 0.9.8o-1ubuntu4.4