2011-07-08 4 views
0

私たちのシステム管理者は最近、私のOSとperl(5.12.3へ)をアップグレードしました。 local :: lib環境変数をロードすると、xsに依存するものがすべて破損しているように見えます。システム/ perlのアップグレード後にlocal :: libの問題を緩和する方法は?

demianshell~> perl -e 'use Storable; store({a=>1}, 'test')' 
demianshell~> eval $(perl -I$HOME/perl5/lib/perl5 -Mlocal::lib) 
demianshell~> perl -e 'use Storable; store({a=>1}, 'test')' 
Assertion ((svtype)((_svi)->sv_flags & 0xff)) >= SVt_RV failed: file "Storable.xs", line 3753 at blib/lib/Storable.pm (autosplit into blib/lib/auto/Storable/_store.al) line 263, at -e line 1 

これは簡単に修正できますか?

答えて

6

唯一のPerlがPerl 5.12。*以外のものからアップグレードされており、local::libインストールのバイナリコンポーネントにはインストールされていないと言われたら、残念ですが、再構築とは別に簡単な解決策はありませんlocal::libモジュールを新しいPerlに追加してください。 Perl XSコンポーネントは、主要なPerlリビジョンでは実行可能ではありません。

これは、Perlシステムがあなたのコントロール外にあるため、Perlシステムを信頼しないことをお勧めします。 App::perlbrewまたは別のPerlインストールをどこかでインストールすることで、自分自身のPerlインストールを使用することは常に良い計画です。

+0

レッスンを受けました!ありがとうございました。 – Demian

+0

は、cpanmにlocal :: libのすべてを再インストールするよう指示する方法がありますか? – Demian

+0

私には分かりません。実際には、関連するモジュールが実際に変更、分割などされる可能性があるため、すべてのケースで正しく取得するのは難しいかもしれません。 cpanm --scandepsが役に立ちます。しかし、面白いシナリオです。 –

関連する問題