既存のマルチユーザー jupyterhub インストール内で Ruby カーネルをセットアップしようとしています。nyaplot (iruby 内で動作する唯一のプロット パッケージ) によって作成されたプロットがノートブックに表示されないことを除いて、すべてのテストで動作します。たとえば、次のコード (Nyaplot チュートリアルの 1 つから) では、(syslog ファイルにも) エラーは発生しませんが、プロットは発生しません。
require 'nyaplot'
plot = Nyaplot::Plot.new
sc = plot.add(:scatter, [0,1,2,3,4], [-1,2,-3,4,-5])
color = Nyaplot::Colors.qual
sc.color(color)
plot.show # show plot on IRuby notebook
バックグラウンド:
jupyterhubで実行するようにirubyをセットアップする方法は次のとおりです。(a) 不足しているものがあれば見つけられるように、(b) 「[これ] を Gemfile に追加する」などのことを言う場合は、私に知らせなければならないことがわかるように、プロセス全体を説明します。 jupyterhub は特定のディレクトリから iruby を実行していないため、Gemfile を配置する場所。
OSはCentOS7.3です。Ruby のデフォルト バージョンは古すぎて iruby を実行できないため、ruby-install を使用して Ruby のバージョンをインストールしました。
wget -O ruby-install-0.6.1.tar.gz https://github.com/postmodern/ruby-install/archive/v0.6.1.tar.gz
tar -xzvf ruby-install-0.6.1.tar.gz
cd ruby-install-0.6.1
make
make install
ruby-install ruby 2.3.4
(sciruby-full の少なくとも 1 つのコンポーネントがまだ 2.4 で動作しないことが判明したため、2.4 ではなく ruby 2.3 を使用しました。) インストール後、ruby が /opt/rubies/ruby にインストールされているというメッセージが表示されます。 -2.3.4.
次はパッケージのインストールです。
マルチユーザー システムでは、他のユーザーがホーム ディレクトリのファイルにアクセスできないため、ホーム ディレクトリに何もインストールされていないことを確認する必要がありました。この問題を解決するために最終的にインストールしたすべてのパッケージを以下にリストします。
export RUBYDIR=/opt/rubies/ruby-2.3.4
export PATH=${RUBYDIR}/bin:$PATH
export LD_LIBRARY_PATH=${RUBYDIR}/lib:$LD_LIBRARY_PATH
export GEM_HOME=${RUBYDIR}
export GEM_PATH=${RUBYDIR}
gem install --no-user-install cztop rbczmq iruby
gem install --no-user-install pry pry-doc awesome_print gnuplot rubyvis nyaplot
gem install --no-user-install sciruby-full
gem install --no-user-install zeromq ffi-rzmq gnuplotrb
次に、iruby カーネルを jupyterhub にインストールします。
iruby register --force
" "の結果を確認した後
、次のファイルを作成しました/usr/local/share/jupyter/kernels/ruby
。
{"argv":[
"/usr/local/bin/jupyter-ruby-env.sh",
"{connection_file}"
],
"display_name":"Ruby",
"language":"ruby"
}
/usr/local/bin/jupyter-ruby-env.sh:
#!/usr/bin/bash -l
export RUBYDIR=/opt/rubies/ruby-2.3.4
export PATH=${RUBYDIR}/bin:$PATH
export LD_LIBRARY_PATH=${RUBYDIR}/lib:$LD_LIBRARY_PATH
export GEM_HOME=${RUBYDIR}
export GEM_PATH=${RUBYDIR}
exec ${RUBYDIR}/bin/iruby kernel $@
前述したように、基本的な Ruby に関する限り、これはすべて機能します。Ruby チュートリアルで見つけたコードを実行できます。私が得られない唯一のものはプロットです。私がインストールした他のすべての jupyterhub カーネル (例: python、SageMath、Julia) では、プロットに問題はありません。
何か案は?