Jupyterhub/lab의 Git extension을 넣을 때의 메모

소개



Jupyterhub/lab에 Git extension을 넣을 때 조금 걸렸기 때문에 그때의 자신의 메모.
또한 Jupyterhub/lab 설치 및 시작에 대한 자세한 내용은 여기을 참조하십시오.

환경



$sw_vers
ProductName:    Mac OS X
ProductVersion: 10.13.6
BuildVersion:   17G14042

$docker --version
Docker version 20.10.0, build 7287ab3

할 일



Jupyterhub/lab에 Git extension을 도입합니다.

했던 일



Jupyterlab 3.0.7의 경우



먼저 docker에서 Jupyterhub 이미지를 가져 와서 시작합니다.

docker run -it -p 8000:8000 --name jupyterhub jupyterhub/jupyterhub bash

여기 을 참고로 설정해 갑니다.
apt update
apt install python3 python3-pip npm nodejs libnode64 vim git
npm install -g configurable-http-proxy
pip3 install -U pip
pip3 install jupyterlab==2.2.9
pip3 install jupyterlab-git==0.23.3
jupyterhub --generate-config
vim jupyterhub_config.py 

jupyterhub_config.py에 다음을 추가합니다.

jupyterhub_config
c.Spawner.default_url = '/lab'
c.Spawner.notebook_dir = '~/notebook'
c.Authenticator.admin_users = {'testadmin'}
c.Authenticator.allowed_users = {'testuser01'}

로그인을 위한 사용자를 생성합니다.
adduser testadmin
mkdir -p -m 777 /home/testadmin/notebook
chown testadmin: /home/testadmin/notebook
adduser testuser01
mkdir -p -m 777 /home/testuser01/notebook
chown testuser01: /home/testuser01/notebook


시작하기 전에 각 라이브러리의 버전을 확인하십시오.

root@62ecd14f5e8a:/srv/jupyterhub# jupyterhub --version
1.3.0
root@62ecd14f5e8a:/srv/jupyterhub# jupyter-lab --version
3.0.7
root@62ecd14f5e8a:/srv/jupyterhub# python3
Python 3.8.5 (default, Jul 28 2020, 12:59:40) 
[GCC 9.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from  jupyterlab_git import __version__ as ver
>>> print(ver)
0.23.3

이제 Jupyterhub를 시작합니다.
jupyterhub jupyterhub_config.py 

그러나 Git extension이 제대로 작동하지 않습니다.



Jupyterlab-git 문서 을 확인하면, 서버측과 프론트측의 extension를 확인하도록(듯이) 하는 것이므로, 우선 서버측의 extension를 확인합니다.

root@62ecd14f5e8a:/srv/jupyterhub# jupyter server extension list
Config dir: /root/.jupyter

Config dir: /usr/etc/jupyter

Config dir: /usr/local/etc/jupyter
    jupyterlab enabled
    - Validating jupyterlab...
      jupyterlab 3.0.7 OK
    nbclassic enabled
    - Validating nbclassic...
      nbclassic  OK

Git extension이 보이지 않기 때문에 jupyterlab-git을 활성화합니다.

root@62ecd14f5e8a:/srv/jupyterhub# jupyter server extension enable --py jupyterlab_git
Enabling: jupyterlab_git
- Writing config: /usr/etc/jupyter
    - Validating jupyterlab_git...
      jupyterlab_git 0.23.3 OK
    - Extension successfully enabled.
root@62ecd14f5e8a:/srv/jupyterhub# jupyter server extension list
Config dir: /root/.jupyter

Config dir: /usr/etc/jupyter
    jupyterlab_git enabled
    - Validating jupyterlab_git...
      jupyterlab_git 0.23.3 OK

Config dir: /usr/local/etc/jupyter
    jupyterlab enabled
    - Validating jupyterlab...
      jupyterlab 3.0.7 OK
    nbclassic enabled
    - Validating nbclassic...
      nbclassic  OK

그런 다음 앞면의 확장을 확인합니다.

root@62ecd14f5e8a:/srv/jupyterhub# jupyter labextension list
JupyterLab v3.0.7
Other labextensions (built into JupyterLab)
   app dir: /usr/local/share/jupyter/lab
        @jupyterlab/git v0.23.3 enabled  X
        nbdime-jupyterlab v2.0.1 enabled  X

   The following extension are outdated:
        @jupyterlab/git
        nbdime-jupyterlab

   Consider running "jupyter labextension update --all" to check for updates.

Git extension이 outdated이므로 업데이트합니다.

root@62ecd14f5e8a:/srv/jupyterhub# jupyter labextension update --all
An error occured.
ValueError: Please install nodejs >=12.0.0 before continuing. nodejs may be installed using conda or directly from the nodejs website.
See the log file for details:  /tmp/jupyterlab-debug-n1cjjsd7.log

여기 오류 발생. nodejs 버전을 올리려고합니다. 여기 을 참고하여 nodejs를 12로 버전 업합니다.

curl -fsSL https://deb.nodesource.com/setup_12.x | bash -
apt-get install -y nodejs

그런 다음 extension 버전을 올립니다.
root@62ecd14f5e8a:/srv/jupyterhub# jupyter labextension update --all
Updating nbdime-jupyterlab to version 2.1.0-beta.1
Updating @jupyterlab/git to version 0.30.0-beta.2
Building jupyterlab assets (production, minimized)

다시 앞면의 확장을 확인합니다.
root@62ecd14f5e8a:/srv/jupyterhub# jupyter labextension list
JupyterLab v3.0.7
Other labextensions (built into JupyterLab)
   app dir: /usr/local/share/jupyter/lab
        @jupyterlab/git v0.30.0-beta.2 enabled OK
        nbdime-jupyterlab v2.1.0-beta.1 enabled OK


Jupyterlab-git이 0.23.3에서 0.30.0-beta.2로 업데이트되었습니다.
출시 정보 를 보면, 0.30.0b1로 Jupyterlab version3에 대응이 된 것 같습니다. 다만, 2021년 2월 18일 시점에서 pip install 로 버젼을 지정하지 않으면 0.23.3이 인스톨 되어 버리기 때문에, Outdated가 되어 버리는 것 같습니다.

다음으로 서버측의 버전도 올려 둡니다.

root@62ecd14f5e8a:/srv/jupyterhub# pip3 install jupyterlab-git==0.30.0b2
root@62ecd14f5e8a:/srv/jupyterhub# jupyter server extension list
Config dir: /root/.jupyter

Config dir: /usr/etc/jupyter
    jupyterlab_git enabled
    - Validating jupyterlab_git...
      jupyterlab_git 0.30.0b2 OK

Config dir: /usr/local/etc/jupyter
    jupyterlab enabled
    - Validating jupyterlab...
      jupyterlab 3.0.7 OK
    jupyterlab_git enabled
    - Validating jupyterlab_git...
      jupyterlab_git 0.30.0b2 OK
    nbclassic enabled
    - Validating nbclassic...
      nbclassic  OK
    nbdime enabled
    - Validating nbdime...
      nbdime 3.0.0.b1 OK


Jupyterhub를 시작합니다.
jupyterhub jupyterhub_config.py 


Git 버튼이 표시되고 잘 작동했습니다.



Jupyterlab 2.2.9의 경우



Git extension의 분은 아직 beta판이라고 하는 일도 있으므로, stable release인 0.23.3을 사용해 보려고 생각해, 대응하고 있는 Jupyterlab 2계의 것을 시험해 보겠습니다. Jupyterhub도 1 이전 버전인 1.2계에서 최신 것을 시도했습니다.
Docker 페이지 에 따르면 1.2.2 가 마지막 버전이었으므로 이것을 사용해 보겠습니다.
또, Jupyterlab는 같은 시기에 릴리스 되고 있는, 2.2.9 (을)를 사용해 봅니다 (자세한 것은 공식 문서 참조).

이하, 마찬가지로 기동&설정해 갑니다.
docker run -it -p 8000:8000 --name jupyterhub122 jupyterhub/jupyterhub:1.2.2 bash
apt update
apt install python3 python3-pip npm nodejs libnode64 vim git
npm install -g configurable-http-proxy
pip3 install -U pip
pip3 install jupyterlab==2.2.9
pip3 install jupyterlab-git==0.23.3
jupyterhub --generate-config
vim jupyterhub_config.py 

jupyterhub_config
c.Spawner.default_url = '/lab'
c.Spawner.notebook_dir = '~/notebook'
c.Authenticator.admin_users = {'testadmin'}
c.Authenticator.allowed_users = {'testuser01'}
adduser testadmin
mkdir -p -m 777 /home/testadmin/notebook
chown testadmin: /home/testadmin/notebook
adduser testuser01
mkdir -p -m 777 /home/testuser01/notebook
chown testuser01: /home/testuser01/notebook


Jupyterlab 2 시스템에서는 시작하기 전에 빌드합니다.

jupyter lab build


빌드가 끝나면 Jupyterhub를 시작합니다.

jupyterhub jupyterhub_config.py 


이쪽은 순조롭게 extension를 넣을 수 있었습니다.



요약


  • Jupyterlab 3.0.7의 경우
  • 프론트 & 서버 모두 Jupyterlab-git은 0.30.02b (이상)를 지정 (0.30.01b는 시도했지만 움직이지 않았습니다)
  • nodejs를 12 이상으로 업데이트해야합니다

  • Jupyterlab 2.2.9의 경우
  • Jupyterlab-git은 0.23.3에서 OK
  • 시작하기 전에 빌드해야합니다


  • 참고로 한 기사 등

    좋은 웹페이지 즐겨찾기