Perlスクリプトをexe化するPARを試してみた。

http://hamachiya.com/junk/memo_PAR.html

適当にはまちちゃんの所見てたら見つけたのでやってみた。
この手のはperl2exeとか色々あるけどやってみた感じだとコレが一番いいと思う。
注意点としてはzipを展開して実行する関係でテンポラリファイルを作る事。
スクリプト実行し終わってもそのまま放置するので手動削除しない限りゴミファイルがどんどん溜まっていく。

あとソースコードをコメント含めてそのまま突っ込むからオープンソース状態になっちゃうくらいかな。

導入方法
だいたい上の記事そのままで通った。Win7x64だったけどActivePerlはx86を選択


・まずActivePerlをダウンロード。最新版だと駄目らしいので素直にこれをインストール
公式には残ってなかったのでミラーからダウンロード
ActivePerl-5.8.6.811-MSWin32-x86-122208.msi でググれば出てくるだろう。
インストールする時はフルインストールするといいと思う。

ppm(WindowsCPANみたいなものかな?)で色々インストール
そのまんまコピペして実行。PAR使うならbribesから落とした方がいいらしい。

C:\User\j416> ppm
ppm> rep add bribes http://www.bribes.org/perl/ppm
で追加して

ppm> rep up bribes
を何度か叩いて優先順位を一番上に

色々必要なものをインストール。Compress-Zlibは1.33で最新と言われた。上の記事の時点で既に1.34出てるはずなんだけど・・・。
まあ問題ないだろう。

ppm> install File-Temp
ppm> install Compress-Zlib
ppm> install Archive-Zip
ppm> install Module-ScanDeps
ppm> install PAR-Dist
ppm> install Parse-Binary
ppm> install Win32-Exe
ppm> install Digest-SHA
ppm> install Module-Signature
ppm> install PAR

最後にPARインストールして終わればquitしてppmから抜ける。
これで通常は終わりみたいだけど、最近のPARにはppがつかないらしいので、適当に記事通り持ってくる。

http://www.cpan.org/authors/id/A/AU/AUTRIJUS/PAR-0.89-MSWin32-x86-multi-thread-5.8.6.par
を落としてzipにして展開した物をC:\Perl\PARへ。
そして以下の環境変数を追加。Perl5libは見つからなかったので新規で追加した。

Path:C:\Perl\PAR\script
Perl5lib:C:\Perl\PAR\lib

Pathを追加する時は区切りとして「;」を忘れずに。
追加したらコマンドプロンプトを再起動してインストール完了。

・実行
> pp -o hoge.exe hoge.pl
でexeが生成される。-iでアイコン指定できるらしいけどうまく行かなかった。
あと--guiコマンドプロンプトの画面を消せる。
system関数とかも問題なく使えるらしい。ActivePerlで出来ることはだいたいできるかな?
あと、最初に書いたけどテンポラリファイルを大量に作る。
C:\Users\(ユーザ名)\AppData\Local\Temp\par-(ユーザ名)\
以下にcache-(何かのハッシュ値)というディレクトリを作るので、定期的に掃除した方がいいかも知れない。

さくらVPS 512を借りてみた。

さくらVPSを契約したらまず最低限やらないといけないことのメモ。

ちなみに今回はクレジット決済でやってみた。
ジャパンネット銀行のVISAワンタイムデビットからだったけど問題なし。
カード発行してから約30分で鯖起動までできた。

・まずSSHでログインしてrootパスワードを変える。
 ついでにコンパネのパスワードも変えておくといいかも。

# passwd
Changing password for user root.
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.

・適当なユーザアカウントを作る。

# adduser j416
# passwd j416
Changing password for user j416
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.

SSHでrootログインできないようにする。
 公開鍵認証とかするのが一番な気がするけど、さすがに携帯からログインする時とか色々面倒なのでパスワード認証。
 ポート番号は変えておいた方がいいと思うけど、そのままでも簡単なパスとかじゃない限り突破されないと思う。まあそのへんは適当に。
/etc/sshd_configを開いて

PermitRootLogin no

を追記すればおk。#PermitRootLogin yesの行弄ってもいいけど。
編集した後はsshdを再起動しておく。

# /etc/init.d/sshd restart
Stopping sshd: [ OK ]
Starting sshd: [ OK ]

このくらいかな。
本当はiptablesとか弄った方がいいだろうけど、本番環境として使う予定はないのでとりあえずこのくらい。
本番環境として使うなら他のブログに書いてる通りもうちょっとやるべきだと思う。