msys2をWindowsにインストールしてPerlを使う
msys2をWindowsにインストールしてPerlを使う方法を解説します。
msys2(エムシスツー)は、Windows上でLinux風のシェル環境を提供するツールです。Linux風の環境でPerlを使って開発ができます。
msys2の画面
msys2なら、ls、cat、tar、gitといったLinuxコマンドを利用することができますし、UTF-8も正しく表示できます。
POSIX互換レイヤーがありますので、Linuxでの起動を前提とした、Mojoliciousの開発サーバーも正しく動きます。
msys2のインストール 10分
msys2をダウンロードしてインストールしましょう。
msys2のダウンロード
msys2をインストールしましょう。64bit版Windowsの場合は64bit版のmsys2を、32bit版のWindowsの場合は32bit版のmsys2を利用しましょう。
現在(2021年3月8日)では、たいていのWindowsは64bit版かと思われますので、普通は64bit版で大丈夫なはず。以下の解説は64bit版を前提に行います。
クリックして、msys2をデスクトップに、ダウンロードしましょう。
ユーザー名の確認
Windowsの「C:\Users」(日本語表示は C:\ユーザー)以下にあるユーザーディレクトリが、以下のように英語になっていることを確認してください。
kimot
もし、以下のように日本語になっている場合は、追加の設定が必要になります。
木本
日本語になっていた場合は、msys2をインストールする前に、環境変数の設定で、変数名に「HOME」を、変数値に「C:\msys64\home\msys2user」のように設定してください。
msys2のホームディレクトリに上記のディレクトリが設定されます。
msys2のインストール
デスクトップにあるmsys2のアイコンをダブルクリックします。
次へを押していくと、インストールが始まります。3分くらいかかりますので、待ちましょう。
完了を押すとmsys2が起動しますが、いったん右上のバツを押して終了させましょう。
msys2の二回目以降の起動
msys2を一度閉じると、次は、どこから起動したらいいんだろうと迷いますね。
Windowsのスタート-メニューのアプリケーションの一覧からmの目次を探すと「MSYS2 64bit」のディレクトリがあります。
その中に
- MSYS2 MinGW 64bit
- MSYS2 MINGW 32bit
- MSYS2 MSYS
がありますが、「MSYS2 MSYS」を起動しましょう。msys2には、3種類の起動スクリプトがありますが、Perlを正しく動かす場合は、Linuxの再現性が最も高い「MSYS2 MSYS」を選択します。
これを間違うと正しくPerlの環境が整えられないので、注意してください。
他の二つは、Windowsネイティブアプリを開発する場合に利用するようです。
デスクトップにショートカットを作成しておくと起動が便利です。その場合は「右クリック」「その他」「ファイルの場所を開く」から「MSYS2 MSYS」を「右クリック」「コピー」して、デスクトップで「貼り付け」です。
Perl環境構築 20分
msys2でPerlを利用できるようにします。PerlとPerlで必要となる開発環境の一覧をまとめてインストールしましょう。
pacmanはmsys2のパッケージマネージャーです。
pacman -S perl perl-CPAN msys2-devel make libcrypt-devel
上記をコピーして、msys2で「右クリック」→「Paste」するとペーストされます。Enterを押して、上記のコマンドを実行しましょう。
インストールするか聞かれるので「Enter」を押して進めましょう。何を聞かれても「Enter」で大丈夫。
以下がインストールされます。これが、Perlを正しく動かすために必要な最小限の環境です。PerlはC言語で書かれており、PerlのモジュールのコンパイルにC言語コンパイラgccが必要です。
- perl (perl)
- cpan (perl-CPAN)
- gcc (msys2-devel)
- make (make)
- crypt.h (libcrypt-devel)
ここで一度右上のバツを押して、ターミナルを閉じて、「MSYS2 MSYS」再起動してください。これを行わないと、PATHの設定が正しくされず、cpanコマンドが正しく動きません。
Perlがインストールされているか確認しましょう。
perl -v
以下のように表示されれば、インストールされています。バージョンは、新しい場合もあります。
This is perl 5, version 24, subversion 4 (v5.24.4) built for x86_64-msys-thread-multi
Perlスクリプトを実行
msys2のユーザーディレクトリは以下の場所になっています。ユーザーディレクトリの下にPerlスクリプトを配置しましょう。
C:\msys64\home\ユーザー名
カレントディレクトリを移動。
cd C:\msys64\home\ユーザー名
ここに「test.pl」というファイルを作成。以下を記述しましょう。
print "Hello, World!\n";
Perlスクリプトを実行してみましょう。
perl test.pl
以下のように表示されれば、Perlはうまくインストールされて、プログラムが実行できています。
Hello, World!
CPANモジュールのインストール
Perlの環境が正しく構築されているかを確認するために、ピュアPerlで動くMojoliciousとXSで書かれているJSON::XSをインストールしてみましょう。
CPANモジュールの中には、Unix/Linux環境で動くことが想定されているものもあります。以下の設定で、シンボリックリンクが、msys2で正しく動くようにしてください。
export MSYS=winsymlinks
初回はcpanを自動設定するか聞かれるので「Enter」で進めましょう。何を聞かれても「Enter」で大丈夫です。
cpan Mojolicious cpan JSON::XS
このインストールが確認できると作業は終了です。お疲れさまでした。
トラブルシューティング
msys2のインストール、Perlのインストール手順が失敗する場合に、ウイルスチェッカー(Avast、マカフィー、ノートン、etc)が、msys2をウイルスソフトだと誤検知する場合がありました。
また、ウイルスチェッカーによって管理者権限で、実行できない場合がありました。
この問題が起こった場合は、msys2のインストーラーを起動する前に、ウイルスチェッカーを一時的に停止して、右クリック「管理者権限として実行」を行ってください。
Windows 10である場合は、デフォルトのウイルスソフトであるWindows Defenderを使えば、問題なくインストールできるようです。
よく使うLinuxコマンド
gitやrsyncなどの、よく使うLinuxコマンドも一緒にインストールしておくと、よいでしょう。
pacman -S git pacman -S rsync
お願い
msys2は定期的にアップデートされて、パッケージ名やアップデートコマンドが変わったりするので、この手順でうまくいかない場合は、リポジトリかTwitterにてお知らせください。