Category: Perl
Perl 5.8.8に更新
February 21st, 2006lang/perl5.8のportが、5.8.7から5.8.8に更新されていたので、ビルドしなおした。
今までは、旧来通り、PERL_VERが上がるたびに、一旦、Perlに依存しているportsを削除してから、新規でインストールし直していました。
今回は、遅ればせながら、一緒にインストールされるperl-after-upgradeというスクリプトを利用して、既にインストールされているPerlに依存するportsを更新してみることにしました。
# portupgrade lang/perl5.8 # rehash
# perl-after-upgrade
とperl-after-upgradeを引数なしで実行すると、実際には実行されずに結果をレポートしてくれます。
問題がないようであれば、
# perl-after-upgrade -f
と引数を付けて実行すると、実際に適用され、
/usr/local/lib/perl5/5.8.7//usr/local/lib/perl5/site_perl/5.8.7/
以下にあるライブラリ等を、それぞれ5.8.8のバージョンのディレクトリ以下に移動してくれます。また、同じように、
/var/db/pkg/*/+CONTENTS
の内容も置き換えてくれ、該当する各portsのデータベースを修正してくれます(元の+CONTENTSは、同じ場所に.bakという拡張子が付いてリネームされる)。
ただし、バイナリファイルに関しては、
**** In addition, please pay attention to the following: The /usr/local/bin/speedy_backend binary was modified, make sure it works
のように表示されて、perl-after-upgradeでは修正できないので、個別に再ビルドすることになります。
どのportsからインストールしたものか判らなければ、
# pkg_info -W /usr/local/bin/speedy_backend /usr/local/bin/speedy_backend was installed by package p5-CGI-SpeedyCGI-2.22_2
と実行すると知ることができます。
# portupgrade -f p5-CGI-SpeedyCGI-2.22_2
あとは、
/usr/local/lib/perl5/5.8.7//usr/local/lib/perl5/site_perl/5.8.7/
にある前のバージョンのものの残骸と、
/var/db/pkg/*/+CONTENTS.bak
の後始末ぐらいです。
Google ツールバーを使わずにページランク取得
January 31st, 2006FreeBSDでも、firefox用のGoogle ツールバーを使用することが出来る。当然、GoogleのPageRankも簡易にチェックすることができる。
ま、ページランク自体、従来いわれたように、Googleの検索結果の上位に表示するための魔法ではないのだけれども。でも、どのコンテンツがどの程度、評価されてるか、一応の目安となり、それなりに興味深い。
Google ツールバーをインストールせずに、Googleのページランクを知りたい場合は、対象となるURLとともに、そのURLのch値といわれるチェックサムが、Googleに問い合わせする際、必要になる。ch値の算出方法については、しばらく謎とされてきたが、
で、そのアルゴリズムが公開されてる。
それを応用したいろいろなアプリケーション等も開発されて、
なんかは、個人的に面白いと思う。
FreeBSDのPerl 5.8でIPC::ShareLiteを使うとPerlがコアダンプする件
December 26th, 2005先日、Webサーバの方のPerlを5.6から5.8にアップグレードした際、IPC::ShareLiteを使用して、共有メモリにアクセスするとPerlがコアダンプしてしまうという問題が出てきた。
調べたところ、lang/perl5.8を-DWITHOUT_PERL_MALLOC付きでPerl自体をビルドし直すか、もしくは、
でのパッチをdevel/p5-IPC-ShareLiteに適用する事で回避できる模様。
ちなみに、現時点では、
p5-IPC-ShareLite-0.09
のバージョンがインストールされている。
主に共有メモリは、wikiの直近のアクセスを集計するのに利用していたけど、あまり突っ込んで調べずに、長らくPerl 5.6のまま放置して来た。でも、これでやっと、Perl 5.8に移行する事をためらっていた原因の一つが解消したので気分が良い。
perl-5.8.7_2に更新
December 23rd, 2005lang/perl5.8をperl-5.8.7_1からperl-5.8.7_2に更新。
BSDPANの検索PATHがsite_perlより先に来るようになったみたい。
% perl -le 'print for @INC' /usr/local/lib/perl5/5.8.7/BSDPAN /usr/local/lib/perl5/site_perl/5.8.7/mach /usr/local/lib/perl5/site_perl/5.8.7 /usr/local/lib/perl5/site_perl/usr/local/lib/perl5/5.8.7/BSDPAN/usr/local/lib/perl5/5.8.7/mach /usr/local/lib/perl5/5.8.7 .
前回と同じく、依存するものの再ビルドは必要なし。
Perlを5.6から5.8に更新
December 21st, 2005今まで、WiKickerのおいてあるWebサーバの方だけ、データの互換性によるトラブルを回避するため、あえて、Perl 5.6のままで運用していたんだけど、今回、思い切って、Perl 5.8に更新。
- FreeBSD portsでのPerlのStorableのバージョン間非互換性 - DON's Diary
- Perl 5.6.2→5.8.7移行メモの項 - KMsWiki: WiKicker
事前に、Storableのデータを、Data::Dumperを利用して、テキスト形式のPerlソースコードにダンプしてから、標準通りの、64bit InterngersでビルドしたPerl 5.8を導入。で、その後、ダンプしたファイルを5.8上のStorableで書き戻した。
全面的に64bitに移行したかったので、
WITHOUT_PERL_64BITINT=yes
とビルドするのは避けた。
あと、データを書き出す際、ダンプの出力に改行をはさまない場合は、
$Data::Dumper::Useqq = 1;
としてエスケープして出力させた方が無難。
なぜか、wikiの方で使えない機能が出てきてるけど、WiKickerでの運用は暫定的なもので、コンテンツはMediaWikiの方に移行作業中。やっぱり、個人的に、PHP+MySQLの方が管理が楽だわ。年内に間に合うかな?
更新履歴 2005/12/20
December 20th, 2005FreeBSD-EN-05:04.nfs
初回は、noticeレベルで、nfsclient周りの不具合。サーバの方にはnfs関係はカーネルに組み込んでないけど、一応
# make buildkernel installkernel
でカーネルモジュールを更新して、再起動。
# uname -r 6.0-RELEASE-p1
に。
lang/perl5.8
の不具合に対するパッチで、perl-5.8.7からperl-5.8.7_1に。前のバージョンとは、互換性が保たれているので、依存するもののリビルドは必要なし。単に、
# portupgrade lang/perl5.8
misc/compat{4,5}x
いつの間にか、/etc/rc.confに
compat4x_enable="YES" compat5x_enable="YES"
と書かなければ、/usr/local/etc/rc.d/以下にあるcompat{4,5}x.shが起動時に有効にならなくなっていた。
