解
dpkg --compare-versionsを使えばよい。
% dpkg --compare-versions 0.1403-1 gt 0.0800-1 && echo true true
余談
"0.14_03-1"と"0.0800-1"とだとどちらがバージョンが新しいと思いますか?
答えは、"0.0800-1"です。 _ はバージョン文字列に含められない無効な文字列なので、無効なバージョンと有効なバージョンであれば、有効なバージョンの方が優先されるようです。挙動的に。
% dpkg --compare-versions 0.14_03-1 lt 0.08_00-1 && echo true dpkg: warning: version '0.14_03-1' has bad syntax: invalid character in version number true
Ubuntu12.04のdpkgでの場合です。他のバージョンだと違うかも知れません。
Dpkg::Versionってperlモジュールもある模様。有効なバージョンかどうか、バージョン文字列の比較ができます。詳しくは perldoc Dpkg::Version を引いてください。
- See Also: 第2章 Debian パッケージ管理