5

既存のマルチユーザー 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) では、プロットに問題はありません。

何か案は?

4

1 に答える 1