キーワード

プロフィール

深沢千尋

Author:深沢千尋
みなさんこんにちは、深沢千尋です。(公式ページ
文字コード【超】研究 改訂第2版NEW!」「すぐわかるPerl」「すぐわかる オブジェクト指向 Perl」の著者です。
ここでは、多くは技術的でないこと、ごくまれに技術的なことをなげやりに書いていきます。
メールは suguwakaruPerl@gmail.com まで。(アットマークは ASCII に)
Twitterはじめました。@query1000です。よろしく~

最新記事

最新コメント

最新トラックバック

月別アーカイブ

カテゴリ

検索フォーム

RSSリンクの表示

リンク

ブロとも申請フォーム

QRコード

QRコード

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

ActivePerl 5.8.9でPARを使う

Windowsで、PerlのスクリプトをPerlエンジンをインストールしていない人に配布するために、PARというモジュールが使うと、PerlのスクリプトをEXE化することができる。
PARで作ったexe形式は実は巨大なzipファイルで、中にPerlエンジンや必要なモジュールをすべて持っているので、サイズが大きく、起動は遅くなるが、配布の手軽さを求めたいこともある。
これでPARの人も使える、とか、そんなことを言ってはいけない。

PAR(Perl ARchiver)というのはJavaにおけるJARに掛けた名前らしい。
JARというのは当然Java ARchiverだろうが、それと、レゲエに出てくるジャマイカの神JARが掛かっているんジャマイカ(しーん)。

さて、PARであるが、以前のバージョンPerl 5.8.6ではPARさえインストールすればよかったのだが、最近のバージョンでは、PARはPerlで書かれた部分だけ抽出され、EXE化のためのコマンドppはPAR-Archiveというモジュールに分離された。
ppを使うには、PAR-Archiveを各自Windows環境において手動でコンパイルする必要がある。
FAQであるが、Windows用のgcc、MinGWを使う方法がわかったので、以下のように公開する。

なお、現在Perlは5.10系と5.8系にフォークしており、ActivePerl5.8系の2009-07-02現在の最新版は5.8.9.826である。
5.10ではText::Kakasiが使えないため、ぼくは5.8系を使う必要がある。

5.8.6を使い続けてもよかったのだが、HTML::Entitiesという超便利なモジュール(生UnicodeをHTML文字参照に置換してくれる)がバグっているので、5.8.9にバージョンアップする必要が生じた。

Perlを5.8.6から0.0.1ずつアップグレードしていくか、5.8.9から0.0.1ずつダウングレードしていって、いい塩梅にPARもText::KakasiもHTML::Entitiesも使えるバージョンを探ってもよかったのかもしれないが、あまり前向きな努力とは言えない。
じゃあ本当に前向きになるなら、5.10でもText::Kakasiが使えるようにすればいいという話もあるが、人間前向きなだけでは生きられないこともあるのである。

以下がPAR-Archiveのビルド方法だ。

(以下のサイトを参考にさせていただきました)
PARによるPerlスクリプトのEXE化
PARでPerlをWindows実行ファイルに(with ithreads)

ActivePerlのインストール
* http://downloads.activestate.com/ActivePerl/Windows/5.8/ からActivePerl-5.8.9.826-MSWin32-x86-290470.msi をダウンロード、インストール
* すでに PAR-0.992 は入っている

ExtUtils-FakeConfigのインストール
* PPM(GUI)を起動
* PPM の Edit >> Preference >> Repositories で http://trouchelle.com/ppm/ を追加
* ExtUtils-FakeConfig 0.12 をインストール(マークしてラン)
* PPMを終了

MinGWのインストール
* http://sourceforge.net/projects/mingw/files/ から Automated MinGW Installer >> MinGW 5.1.4 << MinGW-5.1.4.exe をデスクトップにダウンロード
* ダブルクリックして実行。
* Download and install、I Agree、Current、Full、C:\MinGW、MinGW、Install
* しばし待つ
* Completedが出たらNext、Finish
* マイコンピューターを右クリック、プロパティ、詳細設定、環境変数
* システム環境変数でPATHを選択、編集、先頭に C:\MinGW\bin; と加える、OK、OK、OK
* コマンドプロンプトでgccと入力し「gcc: no input files」と言われたらOK
* デスクトップに残骸(書庫ファイル)がいっぱいできる。全部削除してOK

nmakeのインストール
*http://download.microsoft.com/download/vc15/Patch/1.52/W95/EN-US/nmake15.exe をダウンロード、実行、以下の3ファイルができるので C:\binにでもぶちこむ
NMAKE.EXE
NMAKE.ERR
README.TXT
* C:\bin をPATHに加える
* コマンドプロンプトで(さっきのは閉じて新しく起動)nmakeと入力
* Microsoft (R) Program Maintenance Utility Version 1.50・・・と表示されたらOK

* Cygwinは使わないとする。Cygwinを使っている場合、以下のwget、unzip、tar、cpのインストールは不要。

wgetのインストール
* http://members.at.infoseek.co.jp/futora/wget153/ から wget153_win32.lzhをダウンロード
* 解凍して以下の7ファイルを得、C:\bin にぶちこむ
wget.ini
WGET.EXE
readme_sugimoto.txt
README
option.html
index.html
COPYING
* コマンドプロンプト(さっきのままでよい)でwgetと入力
*wget: missing URL・・・と言われたらOK

unzipのインストール
* ftp://akagi.ms.u-tokyo.ac.jp/pub/dos/tools/unzip.exe をダウンロード、C:\bin にぶちこむ

tarのインストール
* http://www.vector.co.jp/soft/dl/win95/util/se047726.html から TAR11.exe をデスクトップにダウンロード、実行
* 得られた以下のファイルを C:\bin に入れる(別に全部いらないと思うけど)
TAR32.LIB
TAR.TXT
TAR.EXE
TAR.CPP
MAKEFILE
HEADER.TXT
FILES.TXT
COPYING.TXT
*http://www.vector.co.jp/soft/dl/win95/util/se040414.html からtar32230.zipをダウンロード、解凍
* 得られた以下のファイル、フォルダを C:\bin に入れる(同上)
tar32_2.txt
tar32.lib
tar32.exp
tar32.dll(上書きした)
minitar.exe
history.txt
vc5
src
sdk
html
CVS
* コマンドラインで tar と入力
* TAR.EXE Version 1.1 for Windows 95 and Windows NT・・・と言われたらOK

cpのインストール(ていうか・・・)
*以下の内容をcp.batというテキストファイルに保存
@echo off
copy %*
*C:\binに入れる

PAR-Packerのソースを入手、パッチを当てる
* http://search.cpan.org/dist/PAR-Packer/ から PAR-Packer-0.991 をダウンロード
*PAR-Packer-0.991 を解凍。ぼくは+Lhacaを使った
*sub require_modules というサブルーチンの
require PAR::Filter::PodStrip;

eval { require Cwd };の間に
require Win32 if $^O eq 'MSWin32';
という行を入れる(745行目だった)

PAR-Packerのビルド/インストール
* 上のPAR-Packer-0.991を作業ディレクトリとしてコマンドプロンプトを起動、以下のコマンドを順次入力
> perl Makefile.PL
> nmake
> nmake install
> cd ..
> cd PAR-Packer-0.991
> perl -MConfig_m Makefile.PL
> nmake
> nmake install

テスト
* 適当なソースを作ってtest.plとする
* コマンドプロンプトから以下のように実行する。
> pp -o test.exe test.pl

Getopt-ArgvFileのインストール
*以下のように怒られる場合がある。
Can't locate Getopt/ArgvFile.pm in @INC (@INC contains: C:\Perl\PAR\lib C:/Perl/site/lib C:/Perl/lib .) at C:/Perl/site/lib/pp.pm line 17.
*PPM で Getopt::ArgvFile を追加する

* なんか動いた(MinGWのクレジットが2回表示される)

以上である。
ちなみにPARを作ったのは若き天才Audrey Tangさんだが、日本人のファンの一部からは鳳たんと言われている。
Audreyというのは、中国系の人によくある自分で決めた英語のファーストネームだが、あっと驚くことにこの人、中国の苗字が鳳(ホウ)さんというそうだ。(鳳たんです!
スポンサーサイト

テーマ : 実用・役に立つ話 - ジャンル : 趣味・実用

<< 『パルムの僧院』 | ホーム | 第767回「会えるなら会ってみたい人」 >>


コメント

コメントの投稿


管理者にだけ表示を許可する

 ホーム 


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。