旧 Indiana の update
結局、非力なノートPC上の仮想環境では埒が明かないので、リリース IPS リポジトリ(http://pkg.opensolaris.org/release/)が更新されて set-publisher 等の手間が減ったのをこれ幸いと、メモリ割り当て等が幾分マシなデスクトップPC(Windows)上の仮想環境で旧 Indiana ⇒ OpenIndiana 移行を試してみたところ、スワップ不足で失敗という結果に .... orz
しょうがないので、swap 用の仮想ディスクを追加して再挑戦!と意気込んだ途端に、デスクトップPCがHDD不調でアレな状況に。起動したりしなかったり、起動してもやたらディスクI/Oがアレなので、もしやと思ってイベントモニタを確認してみたところ、ドライバからのエラー報告がてんこ盛りな状態。
元々リプレースを考えていて機材調達も進めていたので、それほど問題では無いのだが、即入れ替えとはいかない状態なので、これでは移行実験が出来ない。
これはもう、稼働中の旧 Indiana 自宅サーバで試せ!という神のご意思ではなかろうか?などと血迷ってみる。最悪でも boot environment 保存で復旧できるしね > Solaris 5.11
とりあえず初期状態を確認。
$ uname -a SunOS witchhunt 5.11 snv_111b i86pc i386 i86pc
"pkg image-update" しようとしたら、「SUNWipkg を新しくしろ」とのことなので:
$ pkg info -l SUNWipkg Name: SUNWipkg Summary: Image Packaging System Category: System/Packaging State: Installed Publisher: opensolaris.org Version: 0.5.11 Build Release: 5.11 Branch: 0.111 Packaging Date: Fri Jun 4 17:31:15 2010 Size: 2.69 MB FMRI: pkg:/SUNWipkg@0.5.11,5.11-0.111:20100604T173115Z
この状態から「pkg install SUNWipkg」を実行して:
$ pkg info -l SUNWipkg Name: SUNWipkg Summary: Image Packaging System Category: System/Packaging State: Installed Publisher: opensolaris.org Version: 0.5.11 Build Release: 5.11 Branch: 0.111 Packaging Date: Thu Aug 5 16:13:11 2010 Size: 2.70 MB FMRI: pkg:/SUNWipkg@0.5.11,5.11-0.111:20100805T161311Z
という状態に更新。
ここまでの経緯は、OpenSolaris ユーザグループの ML に投げたものと同じなので、想定の範囲。
で、ここでおもむろに「pkg image-update」なのだが、ウンウンと唸った末に、今度はスタックダンプを吐いて内部エラーによる中断 .... orz
% pkg image-update Creating Plan -Traceback (most recent call last): File "/usr/bin/pkg", line 2599, in ? __ret = main_func() File "/usr/bin/pkg", line 2540, in main_func return image_update(mydir, pargs) File "/usr/bin/pkg", line 543, in image_update update_index=update_index, be_name=be_name) File "/usr/lib/python2.4/vendor-packages/pkg/client/api.py", line 363, in plan_update_all noexecute, verbose=verbose) File "/usr/lib/python2.4/vendor-packages/pkg/client/image.py", line 2985, in make_install_plan ip.evaluate() File "/usr/lib/python2.4/vendor-packages/pkg/client/imageplan.py", line 456, in evaluate self.add_pkg_plan(f) File "/usr/lib/python2.4/vendor-packages/pkg/client/imageplan.py", line 376, in add_pkg_plan pp.evaluate(self.old_excludes, self.new_excludes) File "/usr/lib/python2.4/vendor-packages/pkg/client/pkgplan.py", line 144, in evaluate old_excludes, new_excludes) File "/usr/lib/python2.4/vendor-packages/pkg/manifest.py", line 844, in difference self_exclude=self_exclude) File "/usr/lib/python2.4/vendor-packages/pkg/manifest.py", line 126, in difference odict = dict( File "/usr/lib/python2.4/vendor-packages/pkg/manifest.py", line 831, in gen_actions self.__load() File "/usr/lib/python2.4/vendor-packages/pkg/manifest.py", line 611, in __load self.set_content(data, self.excludes) File "/usr/lib/python2.4/vendor-packages/pkg/manifest.py", line 331, in set_content for action in content: File "/usr/lib/python2.4/vendor-packages/pkg/manifest.py", line 298, in __content_to_actions yield actions.fromstr(l) File "/usr/lib/python2.4/vendor-packages/pkg/actions/__init__.py", line 159, in fromstr action = types[atype](data=data, **attr_dict) File "/usr/lib/python2.4/vendor-packages/pkg/actions/file.py", line 60, in __init__ self.attrs["path"] = self.attrs["path"].lstrip( AttributeError: 'list' object has no attribute 'lstrip' pkg: This is an internal error. Please let the developers know about this problem by filing a bug at http://defect.opensolaris.org and including the above traceback and this message. The version of pkg(5) is '47dec3a3914c'.
これ、"path" 属性として文字列が格納される筈のところ、配列とかが格納されてたのでコケた、という雰囲気。
OpenSolaris の bugzilla で軽く検索をかけてみたところ、bug 17096 の類似障害っぽい感じがするのだが、なんか「path 属性は原則1つを想定」と言っているっぽくて、あまり緊急とは見なされていない感じなので、改めてバグ報告を起こすことに。
ひょっとして、職場でデスクトップ環境として使用している OpenSolaris でも、同じ問題が発生するのかな?
何にしても、予想通りトラブルの引きが強いことよ > 自分