ふり返る暇なんて無いね

日々のメモ書きをつらつらと。メインブログに書くほどでもないことを流してます

Debian Packageのバージョンを比較したい。

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 を引いてください。