2012年10月アーカイブ

今日は息子の運動会だったので、撮ってきた写真をiPhotoに取り込んで、自前スクリプトでNASにコピー。しようと思ったらエラーが出て進まない。
最近OSとかXcodeのバージョンアップがあったからそのせい?とか思いながら、足りないものをMacPortsでインストールする。
しかし、DBI.pmだけは何度インストールしても見つからないと言われる。
Can't locate DBI.pm in @INC (@INC contains: /opt/local/lib/perl5/site_perl/5.12.4/darwin-thread-multi-2level /opt/local/lib/perl5/site_perl/5.12.4 /opt/local/lib/perl5/vendor_perl/5.12.4/darwin-thread-multi-2level /opt/local/lib/perl5/vendor_perl/5.12.4 /opt/local/lib/perl5/5.12.4/darwin-thread-multi-2level /opt/local/lib/perl5/5.12.4 /opt/local/lib/perl5/site_perl/5.12.3 /opt/local/lib/perl5/site_perl /opt/local/lib/perl5/vendor_perl/5.12.3 /opt/local/lib/perl5/vendor_perl .) at /Users/false/bin/photocp.pl line 42.
BEGIN failed--compilation aborted at /Users/false/bin/photocp.pl line 42.
で、/opt/local/lib/perl5に行って、DBI.pmを探してみたところ、以下のように見つかる。
% cd /opt/local/lib/perl5
% find . -name DBI.pm
./vendor_perl/5.12.4/darwin-multi-2level/Bundle/DBI.pm
./vendor_perl/5.12.4/darwin-multi-2level/DBI.pm
で、エラーメッセージの @INC と良く見比べると、@INC の方は /opt/local/lib/perl5/vendor_perl/5.12.4/darwin-thread-multi-2level となっていて、ファイルがあるのは /opt/local/lib/perl5/vendor_perl/5.12.4/darwin-multi-2level/ である。
これが悪いのはわかったが、p5-dbi を何度アンインストール/インストールしても変わらない。
さらによく見ると、unintallしてもファイルが消えていない。installしてもファイルの日付は古いまま。
p5-dbiのPortfileを見ても良くわからないし、どうしたもんかと思って port list installed してみたら、p5-dbi の他に p5.12-dbi と言うものがインストールされていることがわかる。
p5.12-dbiをuninstallしようとすると、p5-dbiが依存しているから駄目よ的なことを言われる。
どうやら、p5-dbiはバージョンを隠蔽するためのダミーportで、p5.12-dbiが本体のようだ。
そこで、p5.12-dbi(とそれに依存しているもの)をuninstallしてみたところ、ちゃんと /opt/local/lib/perl5/vendor_perl/5.12.4/darwin-multi-2level/ からファイルが消えた。この状態で、pt-dbiをinstallすると、今度は /opt/local/lib/perl5/vendor_perl/5.12.4/darwin-thread-multi-2level の方にインストールされた。
しかし、p5-dbiが依存している他のパッケージは古いディレクトリのままだったので、一度古いディレクトリにあった以下のportsを全てuninstallして、installしなおしたら全て新しい場所に入り、スクリプトも動くようになった。
  • p5(.12)-clone
  • p5(.12)-params-util
  • p5(.12)-sql-statement
  • p5(.12)-dbi
  • p5(.12)-dbd-sqlite
ちょっと前まで動いていた気がするので、最近これ系の「動かなくなったタイミング」と、「原因が発生したであろうタイミング」が合わなくて混乱する。本当はもっと前に動かなくなっているべきだと思うのだが。

と思ったけど、ちょっと調べたら最後にスクリプトを動かしたのは10/6で、10/7にgnucashをインストールするときにperlが新しくなっているようなので、10/7から動かなくなったとすると、今回はタイミングがあってるのかなあ。
2012年10月
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      

このアーカイブについて

このページには、2012年10月に書かれたブログ記事が新しい順に公開されています。

前のアーカイブは2012年4月です。

次のアーカイブは2013年3月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Powered by Movable Type 6.1.1