安装程序的作用是什么?#

本文档详细说明了安装程序对运行它的机器所做的具体操作。

apt 安装的软件包#

软件包 python3python3-venv 从 apt 存储库安装。

中心环境#

JupyterHub 从位于 /opt/tljh/hub 的 python3 虚拟环境运行。它使用系统的已安装 python,并由 root 拥有。它还包含 traefik 的二进制安装。此虚拟环境完全由 TLJH 管理。

注意

如果您尝试删除 TLJH,请使用以下方法撤消此操作

sudo rm -rf /opt/tljh/hub

用户环境#

默认情况下,mambaforge conda 环境安装在 /opt/tljh/user 中。它包含用于启动所有用户的笔记本界面,以及所有用户可用的各种软件包。该环境由 root 用户拥有。JupyterHub 管理员可以使用 sudo -E conda installsudo -E pip install 将软件包安装到此环境中。

此 conda 环境被添加到所有使用 JupyterHub 启动的用户 的 $PATH 中。如果您使用的是 ssh,则可以通过运行以下命令激活此环境

source /opt/tljh/user/bin/activate

这应该让您运行各种 condapip 命令。如果您遇到类似 Command 'conda' not found 的错误,请尝试在命令前加上

sudo env PATH=${PATH} <command>

默认情况下,sudo 不尊重您已激活的任何自定义环境。 env PATH=${PATH} 可以“修复”这个问题。

注意

如果您尝试删除 TLJH,请使用以下方法撤消此操作

sudo rm -rf /opt/tljh/user

jupyterhub_config.d 目录用于自定义配置片段#

在 /opt/tljh/config/jupyterhub_config.d 中,任何以 .py 结尾且是有效的 JupyterHub 配置的文件都将在使用 tljh-config 指定的任何配置选项加载之后加载。

注意

如果您尝试删除 TLJH,请使用以下方法撤消此操作

sudo rm -rf /opt/tljh/config

Systemd Units#

TLJH 在您的计算机上放置了 2 个 systemd units。它们都在系统启动时启动。

  1. jupyterhub.service - 启动 JupyterHub 服务。

  2. traefik.service - 启动管理 HTTPS 的 traefik 代理

此外,每个运行的 Jupyter 用户都拥有自己的名为 jupyter-<username> 的 systemd unit。

注意

如果您尝试删除 TLJH,请使用以下方法撤消此操作

# stop the services
systemctl stop jupyterhub.service
systemctl stop traefik.service
systemctl stop jupyter-<username>

# disable the services
systemctl disable jupyterhub.service
systemctl disable traefik.service
# run this command for all the Jupyter users
systemctl disable jupyter-<username>

# remove the systemd unit
rm /etc/systemd/system/jupyterhub.service
rm /etc/systemd/system/traefik.service

# reset the state of all units
systemctl daemon-reload
systemctl reset-failed

状态文件#

TLJH 在 /opt/tljh/state 中放置了 3 个 jupyterhub.service 和 4 个 traefik.service 状态文件。这些文件保存了 JupyterHub 和 Traefik 服务的状态,并且仅供这些服务使用和修改。

注意

如果您尝试删除 TLJH,请使用以下方法撤消此操作

sudo rm -rf /opt/tljh/state

进度页面文件#

如果您使用 --show-progress-page 标志运行了 TLJH 安装程序,那么您的系统中将添加两个文件来帮助提供进度页面

  • /var/run/index.html - 主要的进度页面

  • /var/run/favicon.ico - JupyterHub 图标

注意

如果您尝试删除 TLJH,请使用以下方法撤消此操作

sudo rm /var/run/index.html
sudo rm /var/run/favicon.ico

用户组#

TLJH 在安装时创建了两个用户组

  1. jupyterhub-users 包含所有由该 JupyterHub 管理的用户

  2. jupyterhub-admins 包含所有由该 JupyterHub 管理的具有管理员权限的用户。

当新的 JupyterHub 用户登录时,会为他们创建一个 unix 用户。unix 用户始终被添加到 jupyterhub-users 组中。如果用户是管理员,则在他们启动/停止笔记本服务器时,他们会被添加到 jupyterhub-admins 组中。

如果您卸载 TLJH,您可能应该删除与这两个用户组关联的所有用户帐户,然后删除组本身。您可能需要存档或删除这些用户在 /home/ 下的主目录。

注意

如果您尝试删除 TLJH,为了删除用户及其主目录,请使用

sudo userdel -r <user>

请记住,位于文件系统其他部分的文件将必须手动搜索和删除。

注意

要删除用户组单位

sudo delgroup jupyterhub-users
sudo delgroup jupyterhub-admins
# remove jupyterhub-admins from the sudoers group
sudo rm /etc/sudoers.d/jupyterhub-admins

JupyterHub 管理员的无密码 sudo#

/etc/sudoers.d/jupyterhub-admins 被创建来为所有 JupyterHub 管理员提供无密码 sudo。我们还将其设置为使用 sudo -E 继承 $PATH,以便更容易地调用 condapip 等。

删除 TLJH#

如果尝试清除新的 TLJH 安装,请按照有关如何恢复 TLJH 安装程序对系统进行的每个特定修改的说明进行操作。

注意

如果使用虚拟机,建议移除 TLJH 的方法是销毁虚拟机并重新开始。

警告

在使用 TLJH 后完全卸载它是一项困难的任务,因为它与系统在使用后如何更改以及用户如何修改系统高度耦合。因此,我们无法提供有关如何在这种情况下去做的说明。