MT導入記録 2006年09月28日(Jcode.pm)

うまくいったかに見えた、定期的にmail-entry.cgiを動かす作戦
ふと気づくと、なんかエラーがあったらしくcronさんからメールがきてる。

Subroutine Jcode::ucs2_euc redefined at
(mt.cgiのディレクトリ)/extlib/Jcode/Unicode/NoXS.pm line 56.
Subroutine Jcode::euc_ucs2 redefined at
(mt.cgiのディレクトリ)/extlib/Jcode/Unicode/NoXS.pm line 71.
Subroutine Jcode::euc_utf8 redefined at
(mt.cgiのディレクトリ)/extlib/Jcode/Unicode/NoXS.pm line 87.
Subroutine Jcode::utf8_euc redefined at
(mt.cgiのディレクトリ)/extlib/Jcode/Unicode/NoXS.pm line 94.
Subroutine Jcode::ucs2_utf8 redefined at
(mt.cgiのディレクトリ)/extlib/Jcode/Unicode/NoXS.pm line 101.
Subroutine Jcode::utf8_ucs2 redefined at
(mt.cgiのディレクトリ)/extlib/Jcode/Unicode/NoXS.pm line 124.
「使おうとしたサブルーチン名はすでに使われています」ってことかな?

検索してみると、文字コード変換するときに Jcode.pm っての使うと、さらに Unicode.pm か NoXS.pm かどちらかに下請けとして発注するらしい。
で、(mt.cgiのディレクトリ)/extlib/Jcode/ をみてみると、これが両方入ってる。
Unicodeさんに発注したの忘れてNoXSさんにも発注かけたら「おいおい、そいつはもう発注済だぜ」って上司にしかられたって感じかな?よくわからんけど。
mt3.33のアーカイブにはもともとUnicode.pmは入ってないんだけど、以前のバージョンで「Unicode.pmがない」ってしかられたんで、どっからかさがしてきて入れたんだった。

そんぢゃあってんで、Unicode.pmをはずしちゃったら、mt.cgiが「Unicodeさんがいないといやだよ」って動いてくれなくなっちった。
で、Unicode.pmもどしてNoXS.pmなくしてみたら、こんどは

Subroutine Jcode::ucs2_euc redefined at
(サーバの perlディレクトリ)/Jcode/Unicode/NoXS.pm line 56.
Subroutine Jcode::euc_ucs2 redefined at
(サーバの perlディレクトリ)/Jcode/Unicode/NoXS.pm line 71.
Subroutine Jcode::euc_utf8 redefined at
(サーバの perlディレクトリ)/Jcode/Unicode/NoXS.pm line 87.
Subroutine Jcode::utf8_euc redefined at
(サーバの perlディレクトリ)/Jcode/Unicode/NoXS.pm line 94.
Subroutine Jcode::ucs2_utf8 redefined at
(サーバの perlディレクトリ)/Jcode/Unicode/NoXS.pm line 101.
Subroutine Jcode::utf8_ucs2 redefined at
(サーバの perlディレクトリ)/Jcode/Unicode/NoXS.pm line 124.

てメールがcronさんから届いた。
これは、
(mt.cgiのディレクトリ)/extlib/Jcode/Unicode.pm と
(サーバのperlディレクトリ)/Jcode/Unicode/NoXS.pmを
よみこんぢゃってるって事?

さてどーしたもんかと思ってたけど、
あ、サーバにちゃんとJocodeはいってるんだから、mtが自前で持たなくてもいいぢゃん
て思って、(mt.cgiのディレクトリ)/extlib/の下のJcode関係をはずしてみたら・・・

  • mt.cgiはちゃんと動いてるみたい。
  • cronでmail-entry.cgi動かしてメール取り込んだあとも、cronさんから苦情はこない。

てなわけで解決ってことにします。

まとめ

問題
mail-entry.cgiを動かすと、Jcode関係でエラーが出た

環境
mtのextlib/以下にJcode.pmとUnicode.pmとNoXS.pmが入っている
サーバのPerlはPerl5.8.0(Jocdeの機能元々入ってるハズ)

対応
mtのextlib/以下のJocode関係を削除

結果
いまのところ問題解決しているように見える。

Comments:0

Comment Form

Trackbacks:0

この記事へのTrackBack URL
http://takashi.5252.jp/cgi-bin/mtos/mt-tb.cgi/731
この記事へのトラックバックリスト
MT導入記録 2006年09月28日(Jcode.pm) from うろうろ...
Search
Photos
Recent Entries
Recent Comments
Recent Trackbacks
Archives
Tag Cloud
Google AdSence
Amazonおまかせリンク(R)
楽天Widget

Return to page top