portsのportupgradeをインストールすると、portversionというコマンドもインストールされます。
portversion -v -l '<'
というコマンドを、呪文のようにキーボードを叩いて実行すると…
# portversion -v -l '<'
cadaver-0.22.5_2 < needs updating (port has 0.23.2)
cairo-1.4.14,1 < needs updating (port has 1.6.4_2,1)
dirmngr-1.0.1_1 < needs updating (port has 1.0.1_2)
fetchmail-6.3.8_6 < needs updating (port has 6.3.8_7)
freetype2-2.3.6 < needs updating (port has 2.3.7)
というように表示されて、アップグレード可能なソフトウェアのパッケージ前と、バージョン番号(インストール済みのバージョンと、portsでの最新バージョン)が表示されます。
ところが、最近、portupgradeをportupgradeしてみたところ(笑)
# portversion -v -l '<'
cadaver < needs updating (port has 0.23.2)
cairo < needs updating (port has 1.6.4_2,1)
dirmngr < needs updating (port has 1.0.1_2)
fetchmail < needs updating (port has 6.3.8_7)
freetype2 < needs updating (port has 2.3.7)
現在インストールされているバージョン番号が表示されなくなってしまいました。
ちなみに、portupgradeのバージョンは以下のとおり。
# pkg_which `which portversion`
portupgrade-devel-2.4.4
てっきり、
portversionのバグだろうね。そのうち直るんじゃない?
と思ってたのですが、これって、どうも、最近のバージョンのportversionで、仕様が変更されたみたいです。
「-F」オプションを追加すると、以前と同じような表示になります。
# portversion -v -F -l '<'
cadaver-0.22.5_2 < needs updating (port has 0.23.2)
cairo-1.4.14,1 < needs updating (port has 1.6.4_2,1)
dirmngr-1.0.1_1 < needs updating (port has 1.0.1_2)
fetchmail-6.3.8_6 < needs updating (port has 6.3.8_7)
freetype2-2.3.6 < needs updating (port has 2.3.7)
こっちの表示形式のほうが、
- ソフトウェアのオリジナル配布元側で、バージョンアップしたのか
- portsでのバージョン番号(_1とか_2の部分)が更新されたのか
どっちなのかが区別がつくので、ずっと便利だと思うのですが。
☆
「man portversion」してマニュアルを見ても、「-F」というオプションの説明がないけど、おや?どこで覚えたんだっけ???
「portversion --help」で表示されました。
# portversion --help
portversion 2.4.4 (2008/06/23)
usage: portversion [-hOqv] [-l limit_chars] [-L inv_limit_chars]
[pkgname_glob ...]
portversion [-v] -t ver0 ver1 [ver2 ...]
-h, --help Show this message
-c, --command-output Enable command output
-C, --command-args=ARGS Specify the arguments for portupgrade in command
output (default: none)
-F, --fullname Display package full-name.
(以下略)
マニュアルがまだ書き直されていないんですね、きっと。
☆
「--version」というオプションが使えるみたいなんですが…
# portversion --version
portversion 2.4.4
これについては、マニュアルにも載ってないし、--helpでも表示されないし、/usr/local/sbin/portversionを眺めても、それらしきものが書かれていません。
/usr/local/lib/ruby/1.8/optparse.rb に書いてあるやつかなぁ?
それにしても、rubyは、よくわかりません。