質問: 環境 Linux CentOS 4 perl5.8.8(元はperl5.8.3) 状況: Catalystを使いたく思い ・perl5.8.8 ・Catalyst(インストール時に依存モジュールを大量にインストール済み、testサーバは起動可能) Apacheのhttpd.confに、Catalystのアプリケーションを最初に読み込む設定を書き入れました。 #apachectl graceful を実行すると下記のようなメッセージが出てapacheの再起動ができません。 (Catalystを使用しない設定のhttpd.confでは再起動できます) Can't load '/usr/local/lib/perl5/5.8.8/i686-linux/auto/IO/IO.so' for module IO: /usr/local/lib/perl5/5.8.8/i686-linux/auto/IO/IO.so: undefined symbol: PL_sv_undef at /usr/local/lib/perl5/5.8.8/i686-linux/XSLoader.pm line 64. (以下関連するpmが並びます・・) Can't load となっているIO.so自体は存在。 <これまでやったこと> IO.pmのuninstall、再インストール、staticでの再インストール、make perl ⇒すべて状況かわらず。 どなたか、対処策もしくは状況きり分け方法などを教えていただけると幸いです、、。
回答: 初歩的なミスがないと仮定した場合の話ですが、モジュールの場合、コンパイルしたapacheのバージョンが違うとうまくいかないことが多いです。 この場合、お使いのapacheのソースを取得し、それを利用して、モジュールを再コンパイルする必要があります。コンパイルの仕方は当該のcatalystのソースファイルの中のREADMEやINSTALLなどのファイルで解説されているはずです。