JupyterLab(Jupyter-notebook)でRubyの実行環境構築

#概要
JupyterLabでRubyの実行環境を構築した際に、すんなりいかなかったので解決方法を残そうと思います。

ネットで調べた方法で構築した後に、実際にJupyterLabを起動すると以下のようなメッセージが表示されました。
JupyterLab上でRubyを選択できますが、Rubyのコードを実行しようとすると実行できない状態でした。
どうもlibzmq.dllというdllが読み込めていないようでした。

```
W, [2021-04-29T21:21:26.640618 #12140]  WARN -- : Could not load bundler: Could not locate Gemfile or .bundle/ directoryW, [2021-04-29T21:21:26.709311 #15356]  WARN -- : Could not load bundler: Could not locate Gemfile or .bundle/ directoryUnable to load this gem. The libzmq library exists, but cannot be loaded.
libzmq library was found at:
["C:\\anaconda3\\Library\\bin/libzmq.dll"]
On Windows:
-  Check that you have MSVC runtime installed or statically linked
-  Check that your DLL is compiled for 64 bit

WARNING: ::CZMQ::FFI is not available without libczmq.

F, [2021-04-29T21:21:27.062988 #12140] FATAL -- : Kernel died: No session adapter is available
C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/iruby-0.5.0/lib/iruby/session_adapter.rb:63:in `select_adapter_class'
C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/iruby-0.5.0/lib/iruby/session.rb:112:in `create_session_adapter'
C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/iruby-0.5.0/lib/iruby/session.rb:12:in `initialize'
C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/iruby-0.5.0/lib/iruby/kernel.rb:17:in `new'
C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/iruby-0.5.0/lib/iruby/kernel.rb:17:in `initialize'
C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/iruby-0.5.0/lib/iruby/command.rb:110:in `new'
C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/iruby-0.5.0/lib/iruby/command.rb:110:in `run_kernel'
C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/iruby-0.5.0/lib/iruby/command.rb:40:in `run'
C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/iruby-0.5.0/bin/iruby:5:in `<top (required)>'
C:/Ruby30-x64/bin/iruby:23:in `load'
C:/Ruby30-x64/bin/iruby:23:in `<main>'
C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/iruby-0.5.0/lib/iruby/session_adapter.rb:63:in `select_adapter_class': No session adapter is available (IRuby::SessionAdapterNotFound)
        from C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/iruby-0.5.0/lib/iruby/session.rb:112:in `create_session_adapter'
        from C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/iruby-0.5.0/lib/iruby/session.rb:12:in `initialize'
        from C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/iruby-0.5.0/lib/iruby/kernel.rb:17:in `new'
        from C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/iruby-0.5.0/lib/iruby/kernel.rb:17:in `initialize'
        from C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/iruby-0.5.0/lib/iruby/command.rb:110:in `new'
        from C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/iruby-0.5.0/lib/iruby/command.rb:110:in `run_kernel'
        from C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/iruby-0.5.0/lib/iruby/command.rb:40:in `run'
        from C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/iruby-0.5.0/bin/iruby:5:in `<top (required)>'
        from C:/Ruby30-x64/bin/iruby:23:in `load'
        from C:/Ruby30-x64/bin/iruby:23:in `<main>'
Unable to load this gem. The libzmq library exists, but cannot be loaded.
libzmq library was found at:
["C:\\anaconda3\\Library\\bin/libzmq.dll"]
On Windows:
-  Check that you have MSVC runtime installed or statically linked
-  Check that your DLL is compiled for 64 bit
```

#実行環境
| 環境| バージョン|
| :-: | :-: |
| OS | Windows 10 |
| JupyterLab | 3.0.14 |
| Ruby | 3.0.1 x64 |
| ZeroMQ | 4.3.2 |

Rubyのディレクトリ
C:\Ruby30-x64

#手順
まず前提として、JupyterLab(もしくはJupyter Notebook)とRubyはインストール済みとして説明します。

手順をまとめると以下になります。
1. ZeroMQのダウンロード
2. ZeroMQのdllをRubyのディレクトリにコピー
3. ffi-rzmqのインストール
4. iRubyのインストール
5. iRubyの登録

##1. ZeroMQのダウンロード
[ZeroMQ](https://zeromq.org/download/)からライブラリをダウンロードして、zipファイルを展開します。
私の環境では「Visual Studio 15 2017 x64」を選択しました。

##2. ZeroMQのdllをRubyのディレクトリにコピー
1.展開したディレクトリ内のlibzmq-v141-mt-4_3_2.dllの名前をlibzmq.dllに変更します。
libzmq-v141-mt-4_3_2.dll -> libzmq.dll
ダウンロード時のファイル名はバージョンによって変わります。

2.libzmq.dll、libsodium.dllをRubyのインストールディレクトリのbinへコピーします。
私の環境の場合は「C:\Ruby30-x64\bin」にコピーします。

##3. ffi-rzmqのインストール
1.ZeroMQをRubyで使用するためのGemをインストールします。
コマンドプロンプトで以下のコマンドを実行します。

```console:console
gem install ffi-rzmq
```

2.動作確認
下記コマンドを実行してtrueとなれば、インストール完了です。

```console:console
> irb
irb(main):001:0> require "ffi-rzmq"
=> true
```
##4. iRubyのインストール
以下のコマンドを実行します。

```console:console
gem install iruby
```
##5. iRubyの登録
以下のコマンドを実行します。

```console:console
iruby register --force
```
#JupyterLab起動
コマンドプロンプトで以下のコマンドを実行してJupyterLabを起動します。

```console:console
jupyter lab
```
JupyterLabでRubyのコードが実行できれば完了です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/411151/a9730ef3-a6ac-d1c2-1bd0-ff7a1ac80964.png)

以上で設定完了です。