PCを新しくして色々なものを再インストールしている中、ActivePerlも最新のものを新たにインストールすることにした。
で、現在の最新が5.28だったのでそれをインストールて使用していた。
このときはppm(パッケージマネージャ)が無くなっている事には気付いていなかったが、新しく作成したcgiでperlのCGI.pmを使おうと思ってプログラムを組んでいたらCGI.pmが入っていない事が判明した。
しょうが無いと思ってppmを立ち上げてCGI.pmをインストールしようとして初めて、最近のActivePerlではppmが無くなっている事を知った。
で、一体どうすればCGI.pmを使える様になるのかと色々調べていたが、情報が全然見つからない… (みんなもうActivePerlとか使っていないのか??)
で、ヤクの毛刈り状態でイライラしながら色々調べていくうちに、どうやらActiveStateのサイト上でパッケージの組み合わせを変更したり出来る事が分かった。
今回はその辺の備忘録を兼ねてブログに記しておくことにする。
- https://www.activestate.com/ のサイトに行く。
- サインインする。(アカウントを持っていなかったので新規作成してサインイン。)
- [Set up a new Runtime] を押して新しいランタイムを登録する。(どうやらここで自分の使いたいモジュールを選んだ専用のランタイムパッケージを登録することが出来て、それをローカルにインストールすることで必要に応じてモジュールの抜き差しが出来るようになるらしい。)
- 作成したいパッケージの言語を選択。(今回はPerlを選択。)
- 後は画面に従ってPerlのバージョンや必要なモジュールを選択していくと目的のモジュールを含んだ専用パッケージが登録できる。
- パッケージをそのままローカルにダウンロードしてインストール、もしくはローカルPCのコマンドラインからリモートインストールするためのコマンドをコピーすることが出来る。(今回はモジュールをダウンロードしてローカルにインストール。)
これでCGI.pmが入った状態で新たにperlをインストールすることが出来た。
補足:
上記の作業でCGI.pmはインストールされたのだが、cgiを実行するとCGI.pmが見つからないというメッセージが出てエラーになる。IISの設定を確認してみると、perlのパスが上記のインストールで入ったそれでは無く、もっと前に入れてあったcygwinのperlの方が設定されていた…
※ちなみにIISの設定を確認/変更するにはWindowsのスタートメニューから「Windows管理ツール」内、「インターネットインフォメーションサービス(IIS)マネージャー」を起動する。
CGIを実行するプログラムのパスを変更するにはIISマネージャを起動して「ハンドラーマッピング」を開く。その中の「*.cgi」の行をダブルクリックして表示されるダイアログの「実行可能ファイル」で目的のプログラムを選択する。
今回は「(インストールしたperlのあるパス)\perl.exe "%s" %s」という設定にしたところ、ようやく無事にcgiが動作した。