Perlスクリプトを実行しようとしていますが、次のように返されます。
/usr/bin/perl:シンボルルックアップエラー:/usr/local/groundwork/perl/lib/5.8.8/x86_64-linux-thread-multi/auto/IO/IO.so:未定義のシンボル:Perl_Tstack_sp_ptr
どのPerlモジュールがこれを引き起こしているのかを判断する方法はありますか?
Perlスクリプトを実行しようとしていますが、次のように返されます。
/usr/bin/perl:シンボルルックアップエラー:/usr/local/groundwork/perl/lib/5.8.8/x86_64-linux-thread-multi/auto/IO/IO.so:未定義のシンボル:Perl_Tstack_sp_ptr
どのPerlモジュールがこれを引き起こしているのかを判断する方法はありますか?
IO.so
IOのバイナリコンポーネントです。このディストリビューションのモジュールもperlディストリビューションの一部です(つまり、それらはデュアルライフです)。
このタイプのエラーは通常、あるバージョンのPerlを使用してコンパイルされたバイナリを別のバージョンのPerlで使用している場合に発生します。
最近PERL5LIB
、ログインファイルに環境変数が定義されているときにこの問題が発生しましたが、システムにインストールされているperlと互換性のないディレクトリを指していました。これは、HOME
ファイルシステムが、perlのインストールが異種である多くの異なるマシンにクロスマウントされているために発生しました。環境変数を削除すると問題が解決し、ローカルライブラリを管理するためのより良い方法を見つけることができます。
新しいCentOS(CentOS 6.4など)で古いperlモジュールを使用すると、同様の問題が何度も発生します。
/usr/bin/perl: symbol lookup error: /home/sonnn/perl5/lib/perl5/x86_64-linux-thread-multi/auto/Cwd/Cwd.so: undefined symbol: Perl_Tstack_sp_ptr
/usr/bin/perl: symbol lookup error: /home/sonnn/perl5/lib/perl5/x86_64-linux-thread-multi/auto/version/vxs/vxs.so: undefined symbol: Perl_Tstack_sp_ptr
私はこれらの問題を次のように解決しました:
Cwdのソースコード、バージョンをhttp://search.cpan.org/からダウンロードし、再インストールします
# tar -xzf version-0.9906.tar.gz
# cd version-0.9906
# perl Makefile.PL INSTALL_BASE=/home/sonnn/perl5/
# make
# make install
(If you use default module path, you can omit "INSTALL_BASE=/home/sonnn/perl5/")
他のモジュールについても同様に行います
あなたの場合、IOモジュールをhttp://search.cpan.org/からダウンロードして再インストールできると思います。
編集:
最後に、質問に答えていないことはわかっていますが、これらのエラーについて言及しているサイトがたくさん見つかりましたが、一貫した解決策が含まれているサイトはほとんどないため、取得するのが非常に難しい情報のように見えるので、許可します。それだけです。
プラットフォームパスを変更する前に実行しなければならなかったzimbraの移行を処理できませんでした。Ubuntu8.04からZimbra6.0.16、次にZimbra 7.2.7に移行し、Ubuntu 10.04に移行し、次にZimbra 8.0.9にアップグレードし、次にCentos 7に移行し、次に8.6.0にアップグレードしました。
./install.sh -s ..を実行した後、zimbramonファイルを移動する必要があったCentosで。
mv /opt/zimbra/zimbramon/lib/x86_64-linux-gnu-thread-multi/ /opt/zimbra/zimbramon/lib/x86_64-linux-gnu-thread-multi.bak
次に、-sなしでinstall.shを再度実行しました