perlをwindows10で使う話。それも、マシンを渡り歩きながら使えるようにしようという話です。
ポータブルperlでリモートワークしよう
perlは便利なツールです。およそテキストファイルが介在する仕事なら何であれ頼れる相棒となって助けてくれます。筆者などperlを使わない日は一年365日中2日ぐらいしかありません。
ところが、残念なことにwindowsにはperlが標準ではインストールされていません。これはたいそう不便なので、自宅のwindowsマシンにはperlが追加で(しかも二つものバージョンが)インストールされています。
しかし問題は職場などの共用マシン。ちょっと勝手にソフトをインストールするわけにもいきません。そうしたマシンでも環境を「汚す」ことなくなんとかperlを使えるようにしたい。そして、仕事が終わったら「perl? 何のこと? しらないなあ?」と何食わぬ顔して立ち去りたい。
そこでポータブルperlをUSBスティックメモリに展開し持ち歩くという方策を検討してみることにしました。これなら、家でも職場でもインターネットカフェ(ネカフェ)でもperlが使えます。加えて、エディタと各種UNIX系ツールも使えるようにすれば、場所を問わず仕事ができる。ノマドでユビキタスでナウいリモートワークが実現できるのです。
セットアップの手順
USBメモリスティックの調達
安いので十分。以下に述べるソフトを全部展開しても1GBいかないので、amazonあたりで16GBぐらいのをまとめ買いするといいでしょう。
なお、USBメモリがFAT32でフォーマットされている場合(市販のはたいていそうなっている)、NTFSでフォーマットし直しておくことを勧めます。特にMSYS2を使いたい場合は必ずそうしてください。
以下、特に断りない場合は、作業用のwindowsマシンに既に新品のUSBメモリが刺さっていて、ドライブはf:
であると仮定しています。
perl
windows上で使えるperlは何種類か知られています。以下に示すstrawberry perlか、MSYS2のどちらかを導入するのが2020年時点では現実的な選択です。
最短距離でperlだけ使いたいならstrawberry perlを入れよう
入手元:Strawberry Perl for Windows
基本的にzipを解凍するだけなので、セットアップは簡単です。
- インストーラ(.msi)ではなく、portable版zipをダウンロードし、USBメモリのルートディレクトリ直下に
f:\strawberry-perl-5.32.0.1-64bit-portable
のようなサブディレクトリを作る形で展開する。 - 当該ディレクトリ中の
portableshell.bat
を実行するとコマンドラインが開く。とりあえず、perl --version
と実行して、perlのバージョンその他が表示されるのを確認。
いろいろ本格的にやりたいならMSYS2を入れよう
入手元:MSYS2 - Software Distribution and Building Platform for Windows
多くのツールが利用可能となっていて、そのうちの一つとしてperlが含まれています。
本格的な仕事を始めると、いかにperlが高機能といってもその守備範囲内だけでは辛い種類の作業も出てきます。このような場合はUnix-likeツールの助けを借りることができれば、楽にやれることの範囲が飛躍的に広がります。代表的なツールとしてはxargs、find、sortなどが挙げられるでしょう。それらを一通りパッケージングしたのがMSYS2です。
- 当該ページ中央付近にある「Download the installer:」を目印にして、インストーラ(.exe)をダウンロードする。
- インストーラを起動。展開先をまず聞いてくるので、USBメモリのルートディレクトリ直下に専用サブディレクトリを作る(例えば
f:\msys2
)方向でパス名を指定する。 - 起動用バッチファイルを用意する。
USBメモリのドライブ名は固定ではないので、環境に応じて適切なパスを設定する仕組みが必要です。そのためのバッチファイルを作成して、USBメモリのルートディレクトリに置いておきます(f:\msys2.bat)。内容は以下の通り1。ファイル名はmsys2.bat
としました。
@echo off
set PATH=%~dp0msys64\mingw64\bin\;%~dp0msys64\usr\local\bin\;%~dp0msys64\usr\bin\;%~dp0msys64\bin\;%PATH%
set MSYSTEM=MINGW64
set PKG_CONFIG_PATH=/usr/lib/pkgconfig:/usr/share/pkgconfig:/lib/pkgconfig
.\msys64\msys2.exe
エディタ
perlスクリプト作成に欠かせないのがエディタ。ポータブル仕様でフリーのエディタはいくつか知られています。ここでは、プログラマに好評らしいVSCodeを試してみましょう。
Download Visual Studio Code - Mac, Linux, Windows
から、インストーラではなくzipファイルをダウンロードし、USBスティックのルートディレクトリに直接展開する。
使ってみる
strawberry perl、MSYS2、VSCodeのセットアップを自宅で終えたUSBメモリを持って、ネカフェに行ってきました。
とりあえずMSYS2の起動を試みましょう。上で作った起動用バッチファイルmsys2.bat
をダブルクリックしてみます。つづいてperlを実行してバージョンを確かめてみます。
この起動スクリプトは、そのときのログインユーザ名を見て/home/ユーザ名
のディレクトリを作り、これをカレントディレクトリに自動的に設定するようです。そのファイル名の日本語部分が文字化けして表示されていますが、まあ実用上大きな問題はないでしょう。確かにperlが起動できたことが確認できました。
なお、このネカフェPCではUSBメモリのドライブはF:
ではなくE:
でしたが、MSYS2並びにperlの使用に何の問題もありません。実ドライブ名・ディレクトリ名とMSYS2コンソール上で見えるディレクトリの対応関係は、コマンドラインからmount
コマンドやdf
コマンドを使えば確認できます。
最後に
安価なUSBメモリの中に、自己完結的で本体PCの環境を「汚さない」形でperlの開発環境を構築できました。紛失・破損のリスク対策さえしっかりすれば、ノートパソコンを持ち歩くより楽に、リモートワークができそうです。
-
MSYS2 bash and linux tools on windowsから拝借しました。 ↩