Strawberry Perlのインストール
WindowsではこれまでActive Perlしか使ったことがなかったのですが、Active Perlの古いバージョンが無償でインストールできなくなってしまったため、Strawberry PerlをWindows PCにインストールしてみました。
Strawberry Perlは以前から知っていたのですが、食わず嫌いで使ったことがありませんでした。
実際使ってみると特に不具合もなく、よさげな感じです。また、Strawberry PerlではCPANがそのまま利用できるようになっているのでActive Perlよりも多くのPerlモジュールをインストールできます。もちろんPPMコマンドも使えます。
ということで、ダウンロードとインストールの紹介です。ちなみにStrawberry Perlは最近のXAMPPでも使われています。
1.ダウンロード
Strawberry Perlは5.8.xからダウンロード可能です。ここでは5.10.1をダウンロードします。
Strawberry Perlのページにある「Other editions: ZIP, Portable + older versions」をクリック。
「strawberry-perl-5.10.1.5.msi」を選択します。
2.インストール
ダウンロードしたファイルをダブルクリックしてウィザードを実行します。「Next」をクリック。
「Next」をクリック。
「Install」をクリック。
インストールが開始します。
これでインストール完了です。環境変数の「Path」には次の内容が設定されていました。
- C:¥strawberry¥c¥
- C:¥strawberry¥site¥
- C:¥strawberry¥bin
3.ジャンクションの設定
Perlプログラムのshebang行(1行目)はたいてい「/usr/bin/perl」になっていますが、Strawberry Perlのインストール先は「C:¥strawberry」です。XAMPPに同梱されているStrawberry Perlも「C:¥xampp¥perl」と、違います。
今回インストールしたバージョンではインストールフォルダの変更はできません。また、新しいバージョンではインストール時にフォルダを変更できるようですが、フォルダ構成の都合上「/usr/bin/perl」にあわせるのは難しいかもしれません。
ということで、インストールフォルダはデフォルトから変更せず、ジャンクション(仮想リンク)を設定して、Perlプログラムを動作できるようにする方法がいいでしょう。
Windows 7/Windows Vistaであれば、コマンドプロンプトから次のコマンドでジャンクションを設定できます。
mklink /j C:¥usr C:¥strawberry¥perl
上記でCGIを実行して500エラーになる場合、ジャンクションではなく以下を実行してみてください(C:\usr\binはあらかじめ作成しておく)。
mklink C:\usr\bin\perl.exe C:\strawberry\perl\bin\perl.exe
Windows XPのジャンクションについては以下の記事をご覧ください。
2014.01.09
リンクの設定について追加
- Perlでansibleライブラリを作成する方法
- perlのCPANモジュールからRPMを作成する方法
- Perlで「Subroutine permission redefined at~」を抑止する方法
- XML::Simpleのインストールでエラーになる場合の対処
- YAML::Tinyで「YAML::Tiny found bad indenting in line~」というエラーになる場合の対処
- Perlの正規表現を使って文字列をまとめて取得する方法
- Perlのハッシュでキーの有無を調べる方法
- perlで配列の途中の要素を削除する方法
- YAML::Tinyでコロンを利用する方法
- Perlで改行コードがCRのファイルを読み込む方法
- Perlで「Possible precedence issue with control flow operator」という警告の対処
- PerlのLWPで「Can't verify SSL peers without knowing which Certificate Authorities to trust」というエラーになったときの対処
- Perl+Windowsでファイルを再帰的にリネームする方法
- Perlプログラムの中でファイルの一部を書き換える方法
- Perlの「Bareword "%s" not allowed while "strict subs" in use~」というエラーについて