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などのファイルで解説されているはずです。
ご回答ありがとうございます。
>モジュールの場合、コンパイルしたapacheの
>バージョンが違うとうまくいかないことが多
>いです
perlモジュールと、apacheのバージョンとの相性によって起きる問題、ということでしょうか?
>この場合、お使いのapacheのソースを取得
>し、それを利用して、モジュールを再コンパ
>イルする必要があります。
apacheを再コンパイルするという意味でしょうか?
>コンパイルの仕方は当該のcatalystのソース
>ファイルの中のREADMEやINSTALLなどのファ
>イルで解説されているはずです
Catalysのソースファイル、ということはCatalystとapacheとperlモジュール群との相性ということでしょうか?
原因:apacheとcatalystとその他perlモジュールの相性
対処:apache(もしくはcatalyst?、perlモジュール?)の再コンパイル?
どうも理解がわるくてすみません。。。