StrawberryPerlにNet-SSLeayをインストールする

先日、結果的にクリーンインストールしてしまったPerlに、モジュール群を入れているのだが、Plaggerをインストールする際に必要な「Net-SSLeay」のインストール記事が我ながらわかりにくかったので、もう一度今後のために書いてみる。

Net-SSLeayの前にOpenSSLをインストールします。 まずはOpenSSLのソースを手に入れる。(OpenSSL: Source, Tarballs) そのソースを解凍する。 コマンドプロンプトを起動して解凍したフォルダ(ここでは仮に「D:\Downloads\openssl-0.9.8j」としておく)へ移動し、そのディレクトリで以下のように実行する。

1
D:\Downloads\openssl-0.9.8j> ms\mingw32

すると、コンパイルが始まるのでしばらく待つ。 コンパイルが終了したら、今度は「out」というフォルダに移り、テストを実行する。

1
2
D:\Downloads\openssl-0.9.8j>cd out
D:\Downloads\openssl-0.9.8j\out>..\ms\test

すると、テストが始まるのでしばらく待つ。 テストが終わって、エラーがなさそうなら各種フォルダを作る。

1
2
3
4
5
D:\Downloads\openssl-0.9.8j\out>md c:\openssl
D:\Downloads\openssl-0.9.8j\out>md c:\openssl\bin
D:\Downloads\openssl-0.9.8j\out>md c:\openssl\lib
D:\Downloads\openssl-0.9.8j\out>md c:\openssl\include
D:\Downloads\openssl-0.9.8j\out>md c:\openssl\include\openssl

フォルダができたら、ファイル群をコピーする。

1
2
3
4
5
6
7
D:\Downloads\openssl-0.9.8j\out>cd ..
D:\Downloads\openssl-0.9.8j>copy /b outinc\openssl\* c:\openssl\include\openssl
D:\Downloads\openssl-0.9.8j>copy /b out\libssl32.a c:\openssl\lib
D:\Downloads\openssl-0.9.8j>copy /b out\libeay32.a c:\openssl\lib
D:\Downloads\openssl-0.9.8j>copy /b libssl32.dll c:\openssl\bin
D:\Downloads\openssl-0.9.8j>copy /b libeay32.dll c:\openssl\bin
D:\Downloads\openssl-0.9.8j>copy /b out\openssl.exe c:\openssl\bin

とりあえずopensslについての操作は以上です。ひとまずコマンドプロンプトは閉じます。 次に、Net-SSLeayです。 cpanからNet-SSLeayの最新版を取ってくる。 Florian Ragwitz / Net-SSLeay - search.cpan.org それを解凍して、コマンドプロンプトを起動し、そのフォルダ(今回は「D:\Downloads\Net-SSLeay-1.35」としておく)へ移動する。 そして、以下のように実行する。

1
D:\Downloads\Net-SSLeay-1.35>perl Makefile.PL

perl.exeにパスが通っていない場合は、perl.exeへのフルパスで実行してやる必要があります。 ともかく、perl.exeでMakefile.PLを実行してやるということです。 手元の環境では以下のようなメッセージが出ました。

1
2
3
4
5
6
7
Cannot determine perl version info from lib/Net/SSLeay.pm
Cannot determine license info from lib/Net/SSLeay.pm
*** Found OpenSSL-0.9.8j installed in C:\OpenSSL
*** Be sure to use the same compiler and options to compile your OpenSSL, perl,
and Net::SSLeay. Mixing and matching compilers is not supported.
Do you want to run external tests?
These tests *will* *fail* if you do not have network connectivity. [n]

「C:\OpenSSLになにかインストールされてますよ。同じコンパイラやオプションでNet-SSLeayをコンパイルしてください。」的な意味です。 あと、接続テストをするかどうかを訊かれていますが、ここではテストを飛ばします。 その後、いくつかライブラリが見つからない、というメッセージが出ますが、Makefileが作成されますので、makeします。

1
D:\Downloads\Net-SSLeay-1.35>dmake

実行が終わるまでしばらく待ちます。 終わったら、opensslでコンパイルしたDLLを作業フォルダにコピーします。

1
D:\Downloads\Net-SSLeay-1.35>copy /b c:\openssl\bin\*.dll blib\arch\auto\Net\SSLeay

おそらく2個のファイルがコピーされると思います。 あとは、インストールです。

1
D:\Downloads\Net-SSLeay-1.35>dmake install

念のためperldocでインストールできているか確認します。

1
D:\Downloads\Net-SSLeay-1.35>perldoc Net::SSLeay

エラーが出なければインストール完了です。 お疲れさまでした。

comments powered by Disqus
Built with Hugo
Theme Stack designed by Jimmy