Edited at

WindowsにMSYS2を導入して、Node.js を動作させるまでの手順

More than 3 years have passed since last update.


【はじめに】

Windows上で動作するshell環境であるMSYS2を導入することで、Node.jsを簡単に動作させることができましたので、手順をまとめておきます。

MSYS2は従来のMSYSに比べて

・64bit OSに対応している

・mingw-w64に対応している

・gitパッケージが提供されている

・doxygenやffmpegやemacsパッケージまで・・

などなど結構幸せになれますのでお勧めです。


【MSYS2のインストール】

まずは

http://sourceforge.net/projects/msys2/files/Base/

より、最新のMSYS2をダウンロードします。

ファイルは64bit版/32bit版、インストーラ形式/アーカイブ形式が

それぞれありますので自分の環境に合ったものをお好みで選択したください。

ファイルをダウンロードしたらインストールを行ってください。


Note : 私は "D:/msys64" 以下に64bit版のMSYS2をインストールしております。



【MSYS2の起動】

MSYS2をインストールしたディレクトリー以下に

・msys2_shell.bat

・mingw64_shell.bat

・mingw32_shell.bat

の3つの起動スクリプトが提供されています。

どれを使ってもshellが立ち上がりますので、通常はmsys2_shell.batから起動しておけば問題ないと思います。 が...今回は

・mingw64_shell.bat [64bit環境の場合]

・mingw32_shell.bat [32bit環境の場合]

スクリプトにより起動してください。(理由は後述します)


Note : MSYS2の起動を楽に行う為、スクリプトのショートカットをデスクトップやスタートメニューに作成しておくことを推奨します。



【パッケージマネージャ(pacman)の起動】

はじめにパッケージマネージャよりパッケージの更新処理を行っておきます。

$ pacman -Suy

終了したら、MSYS2を一旦終了させ再起動します。

再起動したら、パッケージマネージャより最低限必要なパッケージを取得しておきましょう。

$ pacman -S vim git wget sed diffutils grep tar unzip

必要であればコンパイラ等(mingw-w64)もインストールします。

$ pacman -S gcc gcc-libs make

ちなみにパッケージの一覧は

$ pacman -Sl

で閲覧することができます。


【minttyの導入】

MSYS2では minttyがデフォルトで動作するようになっているみたいなので、特にする事はないようです。


【winptyラッパのインストール】

minttyはとても使い勝手が良い環境なのですが、「一部のアプリで対話モードが動作しない」といった問題点が存在します。

これは、Node.jsを使用する上では致命的な問題となります。

しかしながら、この問題は、winptyラッパ経由でアプリ(Node.js)を動作させることで回避することが出来ます。

幸いなことにMSYS2にはwinptyのパッケージがあるようなので、これをインストールします。

$ pacman -S winpty-git


Note : このパッケージのwinptyは、従来の'console.exe' が 'winpty.exe' に名称変更されているようなので注意してください



【Node.jsのインストール】

次に、Node.jsのパッケージをインストールします。

pacmanのパッケージは64bit環境用と32bit環境用で名前が違うので、

64bit環境の場合

$ pacman -S mingw-w64-x86_64-nodejs

32bit環境の場合

$ pacman -S mingw-w64-i686-nodejs

とてインストールしてください。



補足事項

前述した 'pacman -Sl' コマンドでパッケージの一覧を閲覧すると、全てのパッケージは msys / mingw32 / mingw64 の3つにカテゴライズされている事がわります。

この中で msys にカテゴライズされたパッケージは常に利用可能なのですが、mingw32 / mingw64 にカテゴライズされたパッケージはそれぞれ起動スクリプトmingw64_shell.bat / mingw32_shell.bat から起動されたshell以外からは利用できません。(PATHが通っていないだけですが・・)。

今回インストールしたNode.jsパッケージは mingw64[32] でカテゴライズされており、mingw64[32]_shell.batから起動したshellを使用する必要があります。

MSYS2の起動の際にmingw64[32]_shell.batを使用したのはこのためです。

(補足事項終わり)



【Node.jsの動作確認】

最後に動作を確認します。

$ node -v

v0.10.32

$ npm -v
1.4.28

対話モードの確認

$ node

> console.log("Hello World!");
Hello World!

>


Note : nodeコマンド(スクリプト)はWinpty経由でnode.exeを叩くように記述されている為、問題なく対話モードを利用できます。