Windowsで/usr/bin/perlを実現する方法

Windowsで/usr/bin/perlを実現する方法

Posted at January 15,2014 12:03 AM
Tag:[dmake, Perl, Windows]

Windowsで/usr/bin/perlを実現する方法を紹介します。

1.はじめに

WindowsでPerl環境を実現するには、Strawberry PerlやXAMPPに同梱されたPerlの利用が一般的と思われます。

ただしPerlスクリプトのShebang行は、

#!/usr/bin/perl

となっているものが多く、Strawberry PerlやXAMPPで提供されるperl.exeはこのパス(C:\usr\bin)にインストールすることができません。

よって、Strawberry PerlやXAMPPでこういったPerlスクリプトを実行するには、

  • Windowsのジャンクション機能またはシンボリックリンクを利用してC:\usr\binにパスを設定
  • Shebang行をStrawberry PerlやXAMPPのパスに書き換える

のいずれかを行う必要があります。

ということで、このエントリーでは上記の手間をなくすためにC:\usr\binにperl.exeをインストールする方法を紹介します。

Perlは以下の方法でインストールします。

  • CPAN Perlを利用
  • CPAN Perlはビルドが必要なので、Strawberry Perlに同梱されているmake(dmake)を使用
  • CPAN Perlのデフォルトパスである「C:\perl」を「C:\usr」に書き換えてからビルド

デフォルトパスの書き換えはMakefileを1行書き換えるだけです。

2.Strawberry Perlのダウンロード・インストール

Strawberry Perlを「Strawberry Perlのインストール」を参考にダウンロード・インストールしてください。

32bit版と64bit版があるので、お使いのPCに合った方をダウンロードします。

Strawberry Perlを使う訳ではないのでzip版でもいいのですが、msi版でインストールすれば、あとで利用するdmakeのパスが自動的に設定されるので便利です。

3.CPAN Perlのダウンロード

Ricardo SIGNES / perl - search.cpan.org」の「Download」をクリック。

Ricardo SIGNES / perl - search.cpan.org

4.アーカイブの展開

ダウンロードしたアーカイブをCドライブ直下に展開。ここでは「perl-5.18.2」というフォルダ名で展開し、その配下に「win32」というフォルダがある前提で説明を進めます。

展開の仕方によってフォルダ名や階層が異なるので適宜読み替えてください。

5.Makefileの修正

ビルドで利用するmakefile.mk(dmake版のMakefile)に記述されているパスを修正します。

任意のエディタで以下のファイルを修正します。

変更前

#
# Set these to wherever you want "nmake install" to put your
# newly built perl.
#
INST_DRV	= c:
INST_TOP	= $(INST_DRV)\perl

変更後

#
# Set these to wherever you want "nmake install" to put your
# newly built perl.
#
INST_DRV	= c:
INST_TOP	= $(INST_DRV)\usr

6.dmakeの実行

コマンドプロンプトを起動し、win32フォルダに移動してコンパイルを実行します。

C:\>cd C:\perl-5.18.2\win32
C:\perl-5.18.2\win32>dmake

このコマンドが完了するまでに数十分かかります。

7.dmake testの実行

同じコマンドプロンプトで、コンパイルしてできたものが正しく動作するか検証するためのコマンドを実行します。

C:\perl-5.18.2\win32>dmake test

このコマンドは完了するまでに数十分~数時間かかります。

8.インストールの実行

最後にインストールを実行します。

C:\perl-5.18.2\win32>dmake install

このコマンドも完了するまでに数十分かかります。

なお、CPAN PerlにはDBI.pmがインストールされていないので個別にインストールする必要があります。

その方法については別途エントリーする予定です。

9.注意事項

3項の修正を行わずにビルドを行ってから3項の修正を行っても、C:\usr\binにperlが配置されません。

厳密には、最初のdmakeで「C:\perl-5.18.2\libConfig_heavy.pl」というファイルが生成され、dmake installではこのファイルに記載された「C:\perl」というパスを出力パスとして使ってしまうようです。

また、いくつかのPCで試したところ、dmake testが途中で「libgcc_s_sjis-1.dllが見つからなかったため、このアプリケーションを開始できませんでした。」というエラーとなるケースがありました。

libgcc_s_sjis-1.dllが見つからなかったため、このアプリケーションを開始できませんでした。

「OK」をクリックすると、プログラム終了のダイアログも出力されます。

動作停止

このエラーが何回か出ましたが、「OK」および「キャンセル」をクリックして作業を進めると後続の処理が実行します。

さらに「cpan/Module-Build/t/compat/exit.t」というところで処理が止まってしまったのでCtrl-Cで強制終了しましたが、最後のdmake installは正常終了できたので、途中でエラーなどになってもとりあえず作業は最後まで進めてみてください。

10.参考サイト

参考サイトは以下です。ありがとうございました。

WindowsでPerlをビルドする
関連記事
トラックバックURL


コメントする
greeting

*必須

*必須(非表示)


ご質問のコメントの回答については、内容あるいは多忙の場合、1週間以上かかる場合があります。また、すべてのご質問にはお答えできない可能性があります。予めご了承ください。

太字イタリックアンダーラインハイパーリンク引用
[サインインしない場合はここにCAPTCHAを表示します]

コメント投稿後にScript Errorや500エラーが表示された場合は、すぐに再送信せず、ブラウザの「戻る」ボタンで一旦エントリーのページに戻り(プレビュー画面で投稿した場合は、投稿内容をマウスコピーしてからエントリーのページに戻り)、ブラウザをリロードして投稿コメントが反映されていることを確認してください。

コメント欄に(X)HTMLタグやMTタグを記述される場合、「<」は「&lt;」、「>」は「&gt;」と入力してください。例えば「<$MTBlogURL$>」は「&lt;$MTBlogURL$&gt;」となります(全て半角文字)