はじめに
Windows 上に ruby-processing の環境を作ろうとしたらひどく苦労したのでメモ。(2018年7月現在)
概要
- 必要なもの: Ruby, JRE, JRuby, Processing, ruby-processing, UNIXライクなシェル
- 問題点
- ruby-processingのメンテナンスがされていないため?インストーラがアクセスするURLがリンク切れ。
- Rakefile が UNIXコマンドを使う (
cp
とか)。 - Ruby と Jruby で一部のコマンド(
gem
)が競合するので、環境変数Path
を適切に設定する必要がある。
Java のインストール
シェルから java
と打ってみて command not found 的なエラーが出たらhttps://java.com から JRE 最新版をインストールします。いや、エラーでなくても JRuby が比較的新しい Java (JRE)を必要とするみたいなので念のため最新版に更新しておいたほうが良いかも。
Ruby のインストール
https://rubyinstaller.org/から最新版をダウンロードして、デフォルトのままインストール。ダウンロードするのは WITHOUT DEVKIT の方でいいです。(というか、DEVKITつきの方をダウンロードしたらWindows Defenderにトロイの木馬だと言われて隔離されてしまった。)
ruby-installerでrubyをインストールするとMSYSというUN*Xライクな環境が同時インストールされますが、このMSYSのシェルがruby-processingインストールでは決定的に重要になります。MSYSじゃなくても (Git for Windows のオマケシェル等でも) いいのですが、標準的なUNIXシェルコマンドが動かせるシェル環境が必要です。
MSYSがWindowsのパスを見るように
環境変数MSYS2_PATH_TYPE
の値をinherit
にするとWindowsのパス等がMSYSのシェルに引き継がれるそうなのでそうしておきます。
環境変数の設定はスタート画面 > Windowsシステムツール > コントロールパネル > システムとセキュリティ > システム > システムの詳細設定 > 詳細設定 > 環境変数
から行います。ユーザの環境変数を新規(N)...
で追加し、変数名をMSYS2_PATH_TYPE
に、値をinherit
にしてください。
(MSYSのウィンドウが開いている場合は一度閉じて) スタート画面からシェル(MSYS2 MSYS
)を起動して、ruby
と打ち込んで command not found じゃなければ ok.
JRuby のインストール
https://jruby.org → Download → 最新版の Windows Executable をダウンロードし、インストールします。アーキテクチャはインストール済みの Java に合わせる必要があります。その他の質問には例によってデフォルト回答で構いません。
パス確認
Ruby と JRuby の両方にパスが通っているのですが、Ruby の方を優先する必要があります。最新のPathを反映させるためにシェルのウインドウを一度閉じて開きます。続いて以下のように入力します。
C:\Users\anonymous>where gem
anonymous@erewhon MSYS ~
$ which gem
ここで、/c/jruby-9.2.0.0/bin/gem
のように、jruby の方の gem が(最初に)出るようであればパスの修正が必要です。この記事の手順で作業すると必要になると思います。ふたたび環境変数のPath
を編集して、JRubyのエントリを一番下に持っていってください。編集したら念のためにシェルのウィンドウを一度閉じて、再度開いて確認しましょう。
ruby-processing をインストール
- bash のウィンドウで
gem install -N ruby-processing
を実行 - 続けて
rp5 setup install
を実行…するもダウンロードで失敗 (404: Not Found.
) する。
はい、失敗するけどそれは織り込み済みです。
JRubyのjarの準備(大変ややこしい)
最大のトリックです。ruby-processing には ruby-complete-1.7.26.jar
というファイルが必要なのですが、
- インストーラにハードコードされたURLがリンク切れで自動では落とせない。(前項のエラーの原因)
- 手動インストールでもなぜかリンク切れの場合が多い。
という問題があります。そこで以下のようにします。
- jruby.org → Download → All Releases を開きます。
-
if
ruby-complete-1.7.26.jar
が ダウンロードできれば それをダウンロードします。 -
else バージョン 1.?.? 系で、できるだけ新しいもの(1.7.27とか)の中でダウンロードできるものをダウンロードして、ファイル名を
jruby-complete-1.7.26.jar
と変更して (1.7.26 と偽って)保存します。 - それを
c:\Ruby25-x64\lib\ruby\gems\2.5.0\gems\ruby-processing-2.7.1\vendors\
に移動します。(2.5.0の部分は実際にインストールしたRubyのバージョンで。)
processing のインストール
- processing.org から バージョン 2. 系の最新版(2.2.1)をダウンロード。
- 展開したフォルダの中にある
processing-2.2.1
を メインで使う予定のUN*Xライクシェルのホームディレクトリ に置きます。この記事で前提としている MSYS2 の場合はC:\msys64\home\ユーザ名\
です。Git for Windows のおまけの git bash の場合は Windows のホームと同じC:\Users\ユーザ名\
だったと思います。
あらためて ruby-processing をインストール
bashのウィンドウで rp5 setup install
を実行します。
anonymous@erewhon MSYS~
$ rp5 setup install
mkdir -p ../lib/ruby
cp -v ruby-complete-1.7.26.jar ../lib/ruby/jruby-complete.jar
'ruby-complete-1.7.26.jar' -> '../lib/ruby/jruby-complete.jar'
とこんなふうになれば ok です。
.rp5rc
の確認
UNIXライクシェルのホームディレクトリに作られているはずの .rp5rc
を確認し、processing-2.2.1
の置き場が正しく指定されていれば ok です。違っていたら修正してください。
anonymous@erewhon MSYS~
$ cat .rp5rc
---
PROCESSING_ROOT: C:\msys64\home\anonymous/processing-2.2.1
JRUBY: true
インストールはここまでです。お疲れ様でした。
epilogue: 試してみる
anonymous@erewhon MSYS~
$ cat > hinomaru.rb
def setup
size 640, 480
end
def draw
background 255, 255, 255
fill 255, 0, 0
ellipse 320, 240, 200, 200
end
^D
anonymous@erewhon MSYS~
$ rp5 run hinomaru.rb