ふたりはララベル (Laravel PHP Framework)

PHPフレームワークのLaravelの体験記を書いていきます。こんなタイトルのブログですが萌え系アニメは一秒たりとも観たことがありません。

Windowsへのperlモジュールのインストールが失敗する

Windowsへperlモジュールをインストールするときにppdファイルを使う。が、以下のようなメッセージが出て失敗することがある。

> ppm install NetSNMP.ppd
ppm install failed: The PPD does not provide code to install for this platform

これはppdファイル内の「ARCHITECTURE NAME」の文字列が誤っているのが原因だ。「ARCHITECTURE NAME」の値を適切に変える必要がある。

初期値:<ARCHITECTURE NAME="MSWin32-x86-multi-thread" />

正しい設定:<ARCHITECTURE NAME="MSWin32-x86-multi-thread-64int-5.18" />

この値の調べ方だけど、まずperl -vを打つ。

> perl -v

This is perl 5, version 18, subversion 1 (v5.18.1) built for MSWin32-x86-multi-thread-64int
(with 1 registered patch, see perl -V for more detail)

Copyright 1987-2013, Larry Wall

「built for...」のところに「MSWin32-x86-multi-thread-64int」という文字列が出る。これにハイフンとperlのバージョン「5.X」を付け足すのだ。例の場合だと「MSWin32-x86-multi-thread-64int-5.18」になる。
でもこのあとにperl512.dllに関するエラーが出たので、そこで止めてしまった。

> perl net-snmp-perl-test.pl
Can't load 'C:/Perl/site/lib/auto/NetSNMP/default_store/default_store.dll' for module NetSNMP::default_store: load_file:指定されたモジュールが見つかりません。 at C:/Perl/lib/DynaLoader.pm line 191.
 at C:/Perl/site/lib/SNMP.pm line 19.
Compilation failed in require at C:/Perl/site/lib/SNMP.pm line 19.
BEGIN failed--compilation aborted at C:/Perl/site/lib/SNMP.pm line 19.
Compilation failed in require at net-snmp-perl-test.pl line 13.
BEGIN failed--compilation aborted at net-snmp-perl-test.pl line 13.