ウェブサイト検索

Fedora 38+/RHEL 9/Rocky Linux 9 に最新の JupyterHub をインストールする方法


JupyterHubは、複数のユーザーが自分のJupyter環境でJupyter Notebookを使用できるようにするウェブベースのプログラムです。JupyterHubとJupyter Notebook/Labの違いについてさらに学ぶには、この記事をお読みください。

この記事では、以下のLinuxディストリビューションに最新のJupyterHubをインストールする方法を示します。

  • Fedora 38 およびそれ以降
  • RHEL 9
  • ロッキーリナックス 9

注意: JupyterHubは他のRPMベースのLinuxディストリビューションにもインストールできます。ほとんど変更せずに同じ手順が機能するはずです。

目次のトピック:

  1. 必要な依存パッケージのインストール
  2. JupyterHub用のPython仮想環境を作成する
  3. JupyterHubのPython仮想環境でのPython PIPのアップグレード
  4. ノードパッケージマネージャーのアップグレード
  5. 構成可能なHTTPプロキシのインストール
  6. Python仮想環境にJupyterHubをインストールする
  7. JupyterHub設定ファイルとSystemdサービスの作成
  8. ネットワーク内の他のデバイスからJupyterHubへのアクセスを許可するためのファイアウォールの設定
  9. JupyterHubにアクセスする
  10. 新しいJupyterHubユーザーの作成
  11. JupyterHubでFirstUseAuthenticatorを設定する
  12. JupyterHubでのIDLE Cullerの設定
  13. JupyterHubの新しいプログラミング言語サポートの追加
  14. 結論

必要な依存パッケージのインストール

まず、次のコマンドでDNFパッケージデータベースキャッシュを更新します。

sudo dnf makecache

JupyterHubに必要な依存パッケージをすべてインストールするには、次のコマンドを実行してください。

sudo dnf install python3-pip python3-devel python3-virtualenv nodejs npm git curl

インストールを確認するには、「Y」を押し、その後<Enter>を押してください。

必要な依存パッケージがインターネットからダウンロードされています。完了するまでに少し時間がかかります。

次のプロンプトが表示されたら、「Y」を押し、その後<Enter>を押して公式FedoraパッケージリポジトリのGPGキーを受け入れてください。

インストールを続けるべきです。

この時点で、必要なすべてのJupyterHub依存関係がインストールされているはずです。

あなたのコンピュータにPython 3、Python 3 PIP、Node.js、およびNPMがインストールされていることを確認するには、次のコマンドを実行してください:

python3 --version

pip3 --version

node --version

npm --version

ご覧の通り、私たちのFedora 39システムにはPython 3.12.0、Python PIP 23.2.1、Node.js 20.8.1、およびNPM 10.1.0がインストールされています。

JupyterHub用のPython仮想環境を作成する

JupyterHubは、Linuxディストリビューションの公式パッケージリポジトリからインストールした他のPythonパッケージと干渉しないように、Pythonの仮想環境にインストールすることが推奨されます。

JupyterHub用に「/opt/jupyterhub」ディレクトリパスに新しいPython仮想環境を作成するには、次のコマンドを実行してください:

sudo python3 -m venv /opt/jupyterhub

JupyterHubのPython仮想環境でのPython PIPのアップグレード

JupyterHubを「/opt/jupyterhub」JupyterHub Python仮想環境にインストールする前に、仮想環境のPython PIPを最新バージョンにアップグレードする必要があります。

「/opt/jupyterhub」Python仮想環境のPIPを最新バージョンにアップグレードするには、次のコマンドを実行してください:

sudo /opt/jupyterhub/bin/pip3 install --upgrade pip

最新のバージョンのPython PIPは「/opt/jupyterhub」仮想環境にインストールされるべきです。

ご覧のとおり、より新しいバージョンのPython PIP(v23.3.1)が「/opt/jupyterhub」JupyterHub仮想環境にインストールされています。

pip3 --version

sudo /opt/jupyterhub/bin/pip3 --version

ノードパッケージマネージャーのアップグレード

Node Package Manager (NPM)を最新バージョンにアップグレードすることも良い考えです。

NPMを最新バージョンにアップグレードするには、次のコマンドを実行してください:

sudo npm -g install npm@latest

ご覧の通り、NPMは最新バージョンにアップグレードされています。

sudo npm --version

構成可能なHTTPプロキシのインストール

JupyterHubは、動作するためにConfigurable HTTP Proxyを必要とします。次のコマンドでNode.jsパッケージConfigurable HTTP Proxyをインストールできます:

sudo npm install -g configurable-http-proxy

構成可能なHTTPプロキシをインストールする必要があります。

Python仮想環境にJupyterHubをインストールする

JupyterHubおよび必要な依存関係をJupyterHubのPython仮想環境「/opt/jupyterhub」にインストールするには、次のコマンドを実行してください:

sudo /opt/jupyterhub/bin/pip3 install wheel ipywidgets jupyterlab jupyterhub

JupyterHubは「/opt/jupyterhub」仮想環境にインストールされています。完了するまでにしばらく時間がかかります。

JupyterHubは、現時点で「/opt/jupyterhub」仮想環境にインストールされている必要があります。

JupyterHub設定ファイルとSystemdサービスの作成

JupyterHub構成ファイルとsystemdサービスファイルを保存するために必要なディレクトリを作成するには、次のコマンドを実行してください:

sudo mkdir -pv /opt/jupyterhub/etc/{jupyterhub,systemd}

「/opt/jupyterhub/etc/jupyterhub」と「/opt/jupyterhub/etc/systemd」ディレクトリを作成する必要があります。

新しいJupyterHub の「jupyterhub_config.py」設定ファイルを「/opt/jupyterhub/etc/jupyterhub」ディレクトリに作成し、nanoテキストエディタで開くには、以下のコマンドを実行してください:

sudo nano /opt/jupyterhub/etc/jupyterhub/jupyterhub_config.py

JupyterHubにネットワークからアクセスするには、“jupyterhub_config.py”ファイルに以下の行を書き込む必要があります:

c = get_config()

Configure Jupyter Hub access IP and port

c.JupyterHub.ip = '0.0.0.0'

c.JupyterHub.port = 80

完了したら、<Ctrl> + X を押し、その後に「Y」と <Enter> を押してJupyterHubの設定ファイルを保存します。

JupyterHubがシステム起動時に自動的に起動できるようにするために、新しいJupyterHubのsystemdサービスファイル「jupyterhub.service」を「/opt/jupyterhub/etc/systemd」ディレクトリに作成し、nanoテキストエディタで開くには、次のコマンドを実行してください:

sudo nano /opt/jupyterhub/etc/systemd/jupyterhub.service

以下の行を「jupyterhub.service」ファイルに入力してください:

[Unit]

Description=JupyterHub

After=syslog.target network.target

[Service]

User=root

Environment="PATH=/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/
bin:/opt/jupyterhub/bin"

ExecStart=/opt/jupyterhub/bin/jupyterhub --config /opt/jupyterhub/etc/jupyterhub/jupyterhub_config.py

[Install]

WantedBy=multi-user.target

完了したら、<Ctrl> +Xを押し、その後に「Y」と<Enter>を押して、JupyterHubのsystemdサービスファイルを保存します。

systemdは「/etc/systemd/system」ディレクトリからサービスファイルを読み込みます。したがって、次のコマンドを使用して「/etc/systemd/system」ディレクトリにJupyterHubのsystemdサービスファイルのシンボリックリンクを作成してください:

sudo ln -s /opt/jupyterhub/etc/systemd/jupyterhub.service /etc/systemd/system/jupyterhub.service

systemd サービスデータベースを再読み込みするには、次のコマンドを実行します。

sudo systemctl daemon-reload

次に、以下のコマンドを使用してJupyterHubのsystemdサービスをコンピュータのシステム起動に追加します(システム起動時に自動的に開始されるように)。

sudo systemctl enable jupyterhub.service

JupyterHubサービスを開始するには、次のコマンドを実行してください:

sudo systemctl start jupyterhub.service

JupyterHubサービスが実行中かどうかを確認するには、次のコマンドを実行してください:

sudo systemctl status jupyterhub.service

ご覧の通り、JupyterHubサービスが実行されており、私たちのコンピュータのシステムスタートアップに追加されています。

ネットワーク上の他のデバイスからJupyterHubへのアクセスを許可するためのファイアウォールの設定

ネットワーク上の他のデバイスがJupyterHubにアクセスできるようにするには、HTTPトラフィックをあなたのコンピュータに許可するようにファイアウォールを設定する必要があります。

ファイアウォールを通してHTTPトラフィックを許可するために(他の人がJupyterHubにアクセスできるように)、以下のコマンドを実行します:

sudo firewall-cmd --add-service=http --permanent

ファイアウォールの変更を適用するには、以下のコマンドを実行してください:

sudo firewall-cmd --reload

JupyterHubにアクセスする

ウェブブラウザからJupyterHubにアクセスするには、JupyterHubをインストールしたコンピュータのIPアドレスを知っておく必要があります。

コンピュータのIPアドレスを見つけるには、次のコマンドを実行してください:

ip a

私たちのコンピュータのIPアドレスは192.168.189.129です。あなたのものとは異なりますので、これからは自分のアドレスに置き換えることを確認してください。

ウェブブラウザからJupyterHubにアクセスするには、http://192.168.189.129を訪問してください。

まもなくJupyterHubのログインページが表示されます。デフォルトでは、JupyterHubはあなたのLinuxシステムのユーザーと連携するように設定されています。したがって、Linuxシステムのいずれかのユーザーのログインユーザー名とパスワードを使用してJupyterHubにログインできます。

JupyterHubにログインするには、ログインしたいLinuxシステムユーザーのユーザー名とパスワードを入力し、「サインイン」をクリックしてください。

JupyterHubアカウントにログインしている必要があります。

新しいJupyterHubユーザーの作成

JupyterHubはデフォルトでLinuxシステムユーザーと共に動作するため、新しいJupyterHubユーザーを作成したい場合は、新しいLinuxユーザーを作成する必要があります。

新しいJupyterHubユーザーを作成する際に支援が必要な場合は、この記事をお読みください。

JupyterHubでFirstUseAuthenticatorを設定する

JupyterHubは他の認証メカニズムもサポートしています。初めてJupyterHubにログインするときにJupyterHubユーザーを即座に作成し、JupyterHubユーザーのログインパスワードを設定したい場合は、JupyterHubでFirstUseAuthenticatorを構成できます。FirstUseAuthenticatorは、その名の通り、初めてJupyterHubにログインする際にJupyterHubユーザーを作成できるようにします。

JupyterHubでのIDLE Cullerの設定

多くのユーザーがJupyterHubを使用する予定がある場合は、JupyterHubのIDLEカラーを設定することをお勧めします。JupyterHubのIDLEカラーは、長時間アイドル状態のユーザーセッションを検出し、それらを停止してシステムリソースを節約することで、他のアクティブなユーザーがそのリソースを利用できるようにします。

JupyterHubの新しいプログラミング言語サポートを追加する

Python以外にも、JupyterHubノートブックに新しいプログラミング言語のサポートを追加することができます。JupyterHubに追加したいプログラミング言語のJupyterHubカーネルをインストールするだけです。

JupyterHubに新しいプログラミング言語のサポートを追加するための支援が必要な場合は、以下のいずれかの記事をお読みください:

  • バッシュ
  • JavaScript/Node.js

結論

この記事では、Fedora 38+、RHEL 9、Rocky Linux、その他のRPMベースのLinuxディストリビューションにJupyterHubをインストールする方法を示しました。また、WebブラウザからJupyterHubにアクセスする方法も示しました。