系统、Hub 和用户环境#

TLJH 的文档提到了系统环境Hub 环境用户环境。本节将介绍它们的含义并阐明这些环境之间的区别。

系统环境#

当本文档提及系统环境时,它指的是具有已安装 apt 软件包、/etc/passwd 中的用户等的 Linux 环境。

系统环境的一部分是通过 apt 软件包 python 设置的 Python 环境,该软件包默认安装在 TLJH 支持的 Linux 发行版中。具体来说,我们可以将其称为系统的 Python 环境

如果你执行 sudo python3 -m pip install <something>,你最终会将某些内容安装到系统的 Python 环境中,而这在 Hub 环境或用户环境中是不可用的。

系统的 Python 环境仅由 TLJH 用于运行作为安装或升级 TLJH 的一部分下载的 bootstrap.py 脚本。此脚本还负责设置 Hub 环境。

Hub 环境#

Hub 环境是一个 虚拟 Python 环境,由 bootstrap.py 脚本在 TLJH 安装期间使用系统的 Python 环境在 /opt/tljh/hub 中设置。

Hub 环境中安装了与运行 JupyterHub 本身相关的 Python 软件包,例如 JupyterHub 身份验证器软件包,但不包括用于启动用户服务器(如 JupyterLab)的软件包。

当 TLJH 安装/升级时,tljh/requirements-hub-env.txt 中列出的软件包将在此环境中安装/升级。

如果你执行 sudo /opt/tljh/hub/bin/python3 -m pip install <something>,你最终会将某些内容安装到 Hub 环境中,而这在系统的 Python 环境或用户环境中是不可用的。

用户环境#

用户环境是 TLJH 安装程序在 TLJH 安装期间在 /opt/tljh/user 中设置的 Python 环境。用户环境不是虚拟环境,因为它为此进行了完全独立的 Python 安装。

用户环境中安装了与运行单个 Jupyter 服务器相关的软件包,例如 jupyterlab

当 TLJH 安装时,[tljh/requirements-user-env.txt] 中列出的软件包将安装在此环境中。然而,当 TLJH 升级时,对此环境所做的工作尽可能少。通常只有 jupyterhub 会升级以匹配 Hub 环境中的版本。如果升级到 TLJH 的新主要版本,除了这一点之外可能会做一些小的更改,然后应该在更新日志中描述。

如果你执行 sudo /opt/tljh/user/bin/python3 -m pip install <something>,或者从用户服务器的终端执行 sudo -E pip install <something>,你最终会将某些内容安装到用户环境中,而这在系统的 Python 环境或 Hub 环境中是不可用的。