【野外求生系列】在離線環境安裝 Jupyter Lab / Notebook
| | | 0 | |
網際網路如同電與自來水成為理所當然,現代軟體幾乎全靠網路現場下載安裝,那些印刷精美的盒子與安裝光碟的五彩斑斕,只留在老人回憶裡已不復返。

但說來有趣,基於安全,偏偏有些電腦的字典裡沒有「上網下載東西」這檔事兒,於是如何在不能上網的環境完成原本即時下載的安裝程序,有時便是個實用的野外求生技巧。
這篇筆記如何在離線 RHEL 8 安裝 Python 及 Jupyter。
新版的 JupyterLab 4.x 需要 Python 3.10+。我找到一篇教學 Simple python 3.11 install in Rhel8 with no public internet repo vm,做法是準備一台 RHEL 8 VM 或 Docker 容器負責下載必要檔案,再複製到到離線主機主機安裝。RHEL 有個人開發者的免費授權,但要申請,不想麻煩的話,可用以下 docker-compose.yml 建一台 Rocky Linux 8 容器省點事。在本地開個 downloads 資料,映對到 Rocky Linux 的 /downloads 用來放下載的檔案:
services:
rocky8:
image: rockylinux:8
container_name: rocky8-offline
command: bash -c "sleep infinity"
volumes:
- ./downloads:/downloads
docker compose up -d 執行後,用 docker compose exec -it rocky8 /bin/sh 登入操作:
- 在 Rocky Liunx 安裝 python3.11.x86_64
yum install --downloadonly --downloaddir=/downloads/python python3.11.x86_64 - 將檔案 scp 上傳到離線 RHEL 8,使用
rpm -ivh安裝
安裝完成後改 python3 別名指向 3.11:rpm -ivh python3.11-setuptools-wheel-65.5.1-2.el8.noarch.rpm rpm -ivh python3.11-pip-wheel-22.3.1-4.el8.noarch.rpm rpm -ivh mpdecimal-2.5.1-3.el8.x86_64.rpm rpm -ivh python3.11-libs-3.11.5-1.el8_9.x86_64.rpm rpm -ivh python3.11-3.11.5-1.el8_9.x86_64.rpmupdate-alternatives --install /usr/bin/python3 python3 /usr/bin/pytnon3.11 1 update-alternatives --config python3 # 該主機原本 python3 已指向 3.6,修改為 # There are 2 programs which provide 'python3'. # # Selection Command # *+ 1 /usr/bin/python3.6 # 2 /usr/bin/python3.11 # # Enter to keep the current selection[+], or type selection number: 2 python3 --version # 檢查版本 - 回到 Rocky Linux,重跑
yum install python3.11.x86_64也裝好 Python 3.11,建立下載用的虛擬環境:yum install python3.11.x86_64 mkdir -p /downloads/jupyter python3.11 -m venv ~/jupyter-download-env ~/jupyter-download-env/bin/python -m pip install --upgrade pip - 下載 Jupyter Lab、Jupyter Notebook、Python Kernel 及 pip,--only-binary=:all: 指定只下載 wheel,避免離線安裝時還要編譯或下載建置工具
~/jupyter-download-env/bin/python -m pip download --only-binary=:all: --dest /downloads/jupyter pip jupyterlab notebook ipykernel - 將 ./downloads/jupyter 下的檔案複製到 RHEL ~/jupyter 目錄,登入 RHEL 操作:
# 建立並切換虛擬環境 python3 -m venv ~/venv/jupyter source ~/venvs/jupyter/bin/activate # 更新 pip python -m pip install --no-index --find-links="$HOME/jupyter" --upgrade pip # 安裝 Jupyter Notebook 相關套件 python -m pip install --no-index --find-links="$HOME/jupyter" jupyterlab notebook ipykernel # 檢查是否有缺,正常要看到 No broken requirements found. python -m pip check # 檢查版本 jupyter lab --version # 執行 Jupyter Lab,會出現帶有 ?token=... 的連結,如 http://localhost:8888/lab?token=9a8b7... jupyter lab --no-browser --ip=127.0.0.1 --port=8888
為了安全,我讓 Jupyter Lab 只限本機存取,再用 SSH Tunnel 將 RHEL 本機的 8888 Port 導到我的客戶端,ssh -N -L 8888:127.0.0.1:8888 user@offline-host 參考,完成後在客戶端用瀏覽器連上 http://localhost:8888/lab?token=9a8b7... 進入 Jupyter Lab 介面,大功告成!
Comments
Be the first to post a comment