diff --git a/docs/contributing/packages.rst b/docs/contributing/packages.rst index 484b0d1..74613e2 100644 --- a/docs/contributing/packages.rst +++ b/docs/contributing/packages.rst @@ -40,9 +40,7 @@ Apt packages ============ Base operating system packages, including Python itself, are installed -via ``apt`` from the base Ubuntu repositories. The one exception to this -is nodejs, which is installed from the `nodesource `_ -apt repository. The Ubuntu provided version of nodejs is usually too old. +via ``apt`` from the base Ubuntu repositories. We generally do not pin versions of packages provided by apt, instead just using the latest versions provided by Ubuntu. \ No newline at end of file diff --git a/docs/topic/installer-actions.rst b/docs/topic/installer-actions.rst index b57ae0e..caad82a 100644 --- a/docs/topic/installer-actions.rst +++ b/docs/topic/installer-actions.rst @@ -4,21 +4,19 @@ What does the installer do? =========================== -This document details what exactly the installer does to the machine it is +This document details what exactly the installer does to the machine it is run on. ``apt`` Packages installed ========================== The packages ``python3`` and ``python3-venv`` are installed from the apt repositories. -Since we need an recent & supported version of ``nodejs``, we install it from -`nodesource `_. Hub environment =============== JupyterHub is run from a python3 virtual environment located in ``/opt/tljh/hub``. It -uses the system's installed python and is owned by root. It also contains a binary install +uses the system's installed python and is owned by root. It also contains a binary install of `traefik `_. This virtual environment is completely managed by TLJH. .. note:: @@ -34,7 +32,7 @@ User environment By default, a ``miniconda`` environment is installed in ``/opt/tljh/user``. This contains the notebook interface used to launch all users, and the various packages available to all -users. The environment is owned by the ``root`` user. JupyterHub admins may use +users. The environment is owned by the ``root`` user. JupyterHub admins may use to ``sudo -E conda install`` or ``sudo -E pip install`` packages into this environment. This conda environment is added to ``$PATH`` for all users started with JupyterHub. If you @@ -49,7 +47,7 @@ This should let you run various ``conda`` and ``pip`` commands. If you run into .. code-block:: bash - sudo env PATH=${PATH} + sudo env PATH=${PATH} By default, ``sudo`` does not respect any custom environments you have activated. The ``env PATH=${PATH}`` 'fixes' that. diff --git a/tests/test_installer.py b/tests/test_installer.py index 7d594d6..ca13cc5 100644 --- a/tests/test_installer.py +++ b/tests/test_installer.py @@ -8,11 +8,6 @@ from tljh import installer from tljh.yaml import yaml -def test_ensure_node(): - installer.ensure_node() - assert os.path.exists('/usr/bin/node') - - def test_ensure_config_yaml(tljh_dir): pm = installer.setup_plugins() installer.ensure_config_yaml(pm) diff --git a/tljh/installer.py b/tljh/installer.py index 5852963..8c89ccf 100644 --- a/tljh/installer.py +++ b/tljh/installer.py @@ -42,67 +42,6 @@ HERE = os.path.abspath(os.path.dirname(__file__)) logger = logging.getLogger("tljh") -def ensure_node(): - """ - Ensure nodejs from nodesource is installed - """ - key = b""" ------BEGIN PGP PUBLIC KEY BLOCK----- -Version: GnuPG v1 -Comment: GPGTools - https://gpgtools.org - -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 -=CLGF ------END PGP PUBLIC KEY BLOCK----- - """.strip() - apt.trust_gpg_key(key) - apt.add_source('nodesource', 'https://deb.nodesource.com/node_10.x', 'main') - apt.install_packages(['nodejs']) def remove_chp(): """ @@ -476,7 +415,6 @@ def main(): ensure_user_environment(args.user_requirements_txt_url) logger.info("Setting up JupyterHub...") - ensure_node() ensure_jupyterhub_package(HUB_ENV_PREFIX) # Stop the http server with the progress page before traefik starts