Ubuntu 16.04.2 (Server install image)にJupyter Notebookをインストールします。また、Jupyter Notebookにbash_kernelとnbextensionsをインストールし機能追加します。まずは、環境構築のためVirtualBoxにUbuntuをインストールしていきます。
VirtualBoxにUbuntuをインストール
ubuntu-16.04.2-server-amd64.isoをダウンロードし、VirtualBox上にインストールします。
※あとでリモートからWebアクセスできるよう、「設定」→「ネットワーク」→「アダプター1」で、割当を「ブリッジアダプター」とします。
インストールは画面の指示に従うだけですが、「HTTPプロキシ」と「ソフトウェアの選択」について、今回は以下の通り設定しています。
HTTPプロキシ:なし (プロキシ環境下ではないので)
ソフトウェアの選択:「standard system utilities」、「OpenSSH server」をチェック
プロキシ環境下でインストール作業を行っている場合は、この段階でHTTPプロキシ設定しておくのがおすすめです。
ゲストOSの設定
ここからはゲストOSの設定です。ユーザ名の箇所は${user_name}としています。構築環境に合わせ読み替えてください。
ネットワーク設定
IPアドレスをDHCPから固定に変更します。IPアドレスが変わっても問題なければDHCPのままで構いません。変更方法は以下のサイトを参考にしました。
まず、「/etc/network/interfaces」を開きます。
$ sudo vim /etc/network/interfaces
ファイル内の「iface enp0s3 inet dhcp」をコメントアウトし、代わりに以下を追加します。
iface enp0s3 inet static
address 192.168.xxx.xxx
netmask 255.255.255.0
gateway 192.168.xxx.xxx
dns-nameservers 192.168.xxx.xxx
最後にゲストOSを再起動します。
$ sudo reboot
パッケージの更新
各パッケージを最新状態にアップデートします。
$ sudo apt update
$ sudo apt upgrade
Jupyter Notebookインストール
ここからが本番です。Jupyter NotebookをインストールするためにAnacondaを使います。
Anacondaはpythonと、よく利用されるpythonパッケージを包含したパッケージです。
Jupyter NotebookもAnacondaの中に含まれています。具体的なインストール方法は以下に記載されています。
以下はAnaconda3-4.4.0を用いたインストール方法です。ホームディレクトリにAnacondaをインストールしていきます。
$ cd ~/
$ wget https://repo.continuum.io/archive/Anaconda3-4.4.0-Linux-x86_64.sh
$ bash Anaconda3-4.4.0-Linux-x86_64.sh
メッセージにしたがってインストールすると、.bashrcにJupyter NotebookのPATHが追加されます。
PATHが追加されなかった場合は、.bashrcか.bash_profileに手作業でPATHを追加してください。
$ export PATH=$PATH:/home/${user_name}/anaconda3/bin
設定の反映もお忘れなく。
$ source .bash_profile (or source .bashrc)
このあと、jupyter-notebookと打つとJupyter Notebookが起動します([Ctrl] + cで終了)。
$ jupyter-notebook &
Jupyter Notebookへのリモートアクセス設定
ここまでで、Jupyter Notebookのインストールが完了しました。ただし、現時点ではローカル環境でしかJupyter Notebookを利用できません。今度はリモートからWebアクセスできるよう設定変更します。設定方法は以下を参考にしました。
ipython notebook(jupyter)をリモートから使う
まずはjupyter_notebook_config.pyファイルを作成します。
$ jupyter-notebook --generate-config
Writing default config to: /home/${user_name}/.jupyter/jupyter_notebook_config.py
次にパスワードのハッシュ値を生成します。
$ ipython3
In [1]: from notebook.auth import passwd
In [2]: passwd()
Enter password:
Verify password:
Out[2]: 'sha1:d1414e6ac5ff:369c16e757d9b49f15d3fad7d6399934ebad4a53'
最後に、jupyter_notebook_config.pyファイルを編集します。
$ vim ~/.jupyter/jupyter_notebook_config.py
ファイルの最下部に以下を追加してください。
c.IPKernelApp.pylab = 'inline'
c.NotebookApp.ip = '*'
c.NotebookApp.open_browser = False
c.NotebookApp.port = 8888
c.NotebookApp.password = u'sha1:d1414e6ac5ff:369c16e757d9b49f15d3fad7d6399934ebad4a53'
最終行の「u'sha:xxxx...'」は先程求めたハッシュ値が入ります。
これで、リモートからアクセスできる状態になりました。改めてjupyter-notebookを起動してみてください。
$ jupyter-notebook &
[1] 1388
$ [W 05:52:52.450 NotebookApp] WARNING: The notebook server is listening on all IP addresses and not using encryption. This is not recommended.
[I 05:52:52.458 NotebookApp] Serving notebooks from local directory: /home/${user_name}
[I 05:52:52.458 NotebookApp] 0 active kernels
[I 05:52:52.458 NotebookApp] The Jupyter Notebook is running at: http://[all ip addresses on your system]:8888/
[I 05:52:52.459 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
「http://[all ip addresses on your system]:8888/」からアクセスできるようになっています。
bash_kernelインストール
bash_kernelを使うと、bashコマンド実行用のnotebookを作成できるようになります。notebook上でbashコマンドを使う方法は他にもありますが、bashコマンドだけを使いたい場合はこちらを使うと便利です。インストール方法は以下を参照しました。
一度Jupyter Notebookプロセスを終了し、以下手順でインストールします。
$ pip install bash_kernel
$ python -m bash_kernel.install
$ jupyter-notebook &
nbextensionsのインストール
nbextensionsをインストールすると、Jupyter Notebookにいろいろな機能を追加できるようになります。私はToC(Table of Contents)機能を使いたいのでnbextensionsをインストールしています。今回はAnacondaのJupyter Notebookを利用しているので、以下を参照してインストールしました。
AnacondaのJupyter notebookでnbextensionsを使う
$ conda install -y -c conda-forge jupyter_contrib_nbextensions
以上でインストール作業は終了です。bash_kernelとToCを用いたnotebookは以下のようになります。