2008年8月7日木曜日

(FreeBSD) 最近、portversionの表示が変わりましたよね? ~ -Fオプションが必要

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)



こっちの表示形式のほうが、



  1. ソフトウェアのオリジナル配布元側で、バージョンアップしたのか


  2. 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は、よくわかりません。



0 件のコメント:

コメントを投稿