2009年4月9日木曜日

FreeBSD: portupgradeとperl

再びFreeBSDネタ。今回はportupgradeとperlの話の続き。何かと言うと,perlのバージョンが上った時にモジュールを入れなおさないといけないけど,便利なコマンドないかなぁ?と考えていた。 数回前の投稿にそんなことを書いておいた。で,いろいろ検索してやっと見つけました。答えは
perl-after-upgrade
ってコマンド。これはPerl自体をアップデータした時に,モジュール類を新しいバージョンの方に移すためのコマンドらしい。 man perl-after-upgradeってすると英語で説明してくれるが,日本で説明を載せておきましょう。
---------------------------------------------------------------
portupgrade等を使ってPerlをアップグレードした場合の処理

 (1) perl-after-upgradeを実行して,どのportに変更が加えられるかをチェックする。
   perl-after-upgradeに引数なしで実行すると,チェックのみ実行され,書き換えは行われない。
 (2) perl-after-upgrade -fを実行して,前述の内容を実際に実行する。
  ・問題が報告されている場合にはこの段階で修正する。
  ・操作できないパッケージがある場合は報告される。その際は手動で make deinstall と make install clean 等を行う。
 (3) /usr/local/lib/perl5/site_perl/5.8.8/の下にディレクトリだけ残り,他のファイルが残っていないことを確認する。
   もし,残ファイルがある時には再インストールするなどしてから,/usr/local/lib/perl5/site_perl/5.8.8 /を削除する(らしい)。
 (4) Perlを使ったプログラムが動作しているか確認する。
 (5) /var/db/pkg/*/+CONTENTS.bakといったバックアップファイルを削除する。
---------------------------------------------------------------
実際にやってみたら,perlのモジュールのせいでうまくいっていなかった portupgrade が,確かに perl-after-upgrade -fの後はうまくいくようになった。やっぱり考えてる人はいるんやねぇ。

1 件のコメント:

Sotarn さんのコメント...

探してたものが見つかりました。ありがとう