🛠️
地球観測データの処理環境としてJupyterNotebookを整える
前提条件
本環境はCentOS-Stream release8[1]
インストールは「最低限のパッケージ」を選択
基本的な環境の準備
圧縮や解凍、EPEL(Extra Packages for Enterprise Linux)の有効化
# dnf-3 install -y zip tar
# dnf-3 install -y epel-release
# sed -ie "s/^enabled=0$/enabled=1/g" /etc/yum.repos.d/CentOS-Stream-PowerTools.repo
rpmでインストールできるパッケージのインストール
gccやmakeなどの開発環境、HDF5やprojなどの地球観測データの処理に必要なパッケージでrpmで提供されているものをインストール。
# dnf-3 install -y python3-h5py hdf5-devel hdf5-static
# dnf-3 install -y python3-scipy python3-nose python2-numpy
# dnf-3 install -y python3-Cython proj proj-devel gcc gcc-c++ platform-python-devel geos geos-devel make
# dnf-3 install -y python3-pyproj python3-pillow python3-pillow-devel
python環境の準備
Jupyterをインストールするために必要なpython環境をインストール。
# dnf-3 install -y python36
# alternatives --config python
2 プログラムがあり 'python' を提供します。
選択 コマンド
-----------------------------------------------
*+ 1 /usr/libexec/no-python
2 /usr/bin/python3
Enter を押して現在の選択 [+] を保持するか、選択番号を入力します:2
# update-alternatives --install /usr/bin/pip pip /usr/bin/pip3 1
Jupyterのインストール
Jupyter(Notebook)のインストール
Jupyterをインストール。
# pip install jupyter
Jupyterサービスの追加
# cat<<_EOF_>/etc/systemd/system/jupyter.service
[Unit]
Description = Jupyter Notebook
[Service]
Type=simple
PIDFile=/var/run/jupyter-notebook.pid
ExecStart=/usr/local/bin/jupyter notebook
WorkingDirectory=/home/<username>/jupyter/
User=<username>
Group=<groupname>
Restart=always
[Install]
WantedBy = multi-user.target
_EOF_
<username>と<groupname>には適宜、jupyternotebookで利用するユーザ、グループを設定する。
Jupyter作業ディレクトリ、設定ファイルの作成
$ mkdir ${HOME}/.jupyter
$ mkdir ${HOME}/jupyter
パスワードハッシュの生成
$ python -c 'from notebook.auth import passwd;print(passwd())'
Enter password:
Verify password:
argon2:$argon2id$v=19$m=10240,t=10,p=8$k/wpkX6W3NB+UZJYVgpzng$lDkk6aYYnSB+YjyFy35+eDFLm1PGu4IOzjONrT1sz0Y
上記は「hoge」をパスワードとして入力したハッシュ。
このハッシュをコピーしておく。
configファイルの作成
パスワードハッシュで作成した、ハッシュトークンをc.NotebookApp.passwordの箇所に設定
$ cat<<_EOF_>${HOME}/.jupyter/jupyter_notebook_config.py
c = get_config()
c.NotebookApp.ip = '0.0.0.0'
c.NotebookApp.open_browser = False
c.NotebookApp.password = 'argon2:$argon2id$v=19$m=10240,t=10,p=8$k/wpkX6W3NB+UZJYVgpzng$lDkk6aYYnSB+YjyFy35+eDFLm1PGu4IOzjONrT1sz0Y'
c.NotebookApp.port = 8888
_EOF_
firewall設定
# firewall-cmd --add-port=8888/tcp
# firewall-cmd --add-port=8888/tcp --permanent
# firewall-cmd --reload
Jupyterサービスの有効化、起動
# systemctl list-unit-files --type=service |grep jupyter
# systemctl daemon-reload
# systemctl enable jupyter
# systemctl list-unit-files --type=service |grep jupyter
# systemctl start jupyter
# systemctl status jupyter
暗号化ポリシーの設定
# update-crypto-policies --set LEGACY
(主にPythonの)解析に利用するパッケージのインストール
gdal
# curl -skOL http://download.osgeo.org/gdal/3.4.2/gdal-3.4.2.tar.gz
# tar zxvf gdal-3.4.2.tar.gz
# cd gdal-3.4.2
# ./configure
# make
# make install
# easy-install-3.6 gdal
# echo /usr/local/lib/ > /etc/ld.so.conf.d/libgdal.conf
# ldconfig
その他
# pip install numpy pandas shapely fiona six descartes matplotlib geopy geopandas
# pip install pyepsg cartopy xarray
-
執筆時点でのKernelは4.18.0-373.el8.x86_64 ↩︎
Discussion