mirror of
https://github.com/jupyterhub/the-littlest-jupyterhub.git
synced 2025-12-18 21:54:05 +08:00
Rename 'envt' to 'env'
Other option is the full blown 'environment'
This commit is contained in:
56
docs/howto/env/notebook-interfaces.rst
vendored
Normal file
56
docs/howto/env/notebook-interfaces.rst
vendored
Normal file
@@ -0,0 +1,56 @@
|
||||
.. _howto/env/notebook_interfaces:
|
||||
|
||||
=======================================
|
||||
Change default User Interface for users
|
||||
=======================================
|
||||
|
||||
By default, logging into TLJH puts you in the classic Jupyter Notebook interface
|
||||
we all know and love. However, there are at least two other popular notebook
|
||||
interfaces you can use:
|
||||
|
||||
1. `JupyterLab <http://jupyterlab.readthedocs.io/en/stable/>`_
|
||||
2. `nteract <https://nteract.io/>`_
|
||||
|
||||
Both these interfaces are also shipped with tljh by default. You can try them
|
||||
temporarily, or set them to be the default interface whenever you login.
|
||||
|
||||
Trying an alternate interface temporarily
|
||||
=========================================
|
||||
|
||||
When you log in & start your server, by default the URL in your browser
|
||||
will be something like ``/user/<username>/tree``. The ``/tree`` is what tells
|
||||
the notebook server to give you the classic notebook interface.
|
||||
|
||||
* **For the JupyterLab interface**: change ``/tree`` to ``/lab``.
|
||||
* **For the nteract interface**: change ``/tree`` to ``/nteract``
|
||||
|
||||
You can play around with them and see what fits your use cases best.
|
||||
|
||||
Changing the default user interface
|
||||
===================================
|
||||
|
||||
You can change the default interface users get when they log in by modifying
|
||||
``config.yaml`` as an admin user.
|
||||
|
||||
#. To launch **JupyterLab** when users log in, run the following in an admin console:
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
sudo -E tljh-config set user_environment.default_app jupyterlab
|
||||
|
||||
#. Alternatively, to launch **nteract** when users log in, run the following in the admin console:
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
sudo -E tljh-config set user_environment.default_app nteract
|
||||
|
||||
#. Apply the changes by restarting JupyterHub. This should not disrupt current users.
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
sudo -E tljh-config reload
|
||||
|
||||
If this causes problems, check the :ref:`troubleshoot_logs_jupyterhub` for clues
|
||||
on what went wrong.
|
||||
|
||||
Users might have to restart their servers from control panel to get the new interface.
|
||||
155
docs/howto/env/user-environment.rst
vendored
Normal file
155
docs/howto/env/user-environment.rst
vendored
Normal file
@@ -0,0 +1,155 @@
|
||||
.. _howto/env/user_environment:
|
||||
|
||||
==================================
|
||||
Install conda, pip or apt packages
|
||||
==================================
|
||||
|
||||
:abbr:`TLJH (The Littlest JupyterHub)` starts all users in the same `conda <https://conda.io/docs/>`_
|
||||
environment. Packages / libraries installed in this environment are available
|
||||
to all users on the JupyterHub. Users with :ref:`admin rights <howto/admin/admin-users>` can install packages
|
||||
easily.
|
||||
|
||||
.. _howto/env/user_environment_pip:
|
||||
|
||||
Installing pip packages
|
||||
=======================
|
||||
|
||||
`pip <https://pypi.org/project/pip/>`_ is the recomended tool for installing packages
|
||||
in Python from the `Python Packaging Index (PyPI) <https://pypi.org/>`_. PyPI has
|
||||
almost 145,000 packages in it right now, so a lot of what you need is going to be there!
|
||||
|
||||
1. Log in as an admin user and open a Terminal in your Jupyter Notebook.
|
||||
|
||||
.. image:: ../../images/notebook/new-terminal-button.png
|
||||
:alt: New Terminal button under New menu
|
||||
|
||||
If you already have a terminal open as an admin user, that should work too!
|
||||
|
||||
2. Install a package!
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
sudo -E pip install numpy
|
||||
|
||||
This installs the ``numpy`` library from PyPI and makes it available
|
||||
to all users.
|
||||
|
||||
.. note::
|
||||
|
||||
If you get an error message like ``sudo: pip: command not found``,
|
||||
make sure you are not missing the ``-E`` parameter after ``sudo``.
|
||||
|
||||
.. _howto/env/user_environment_conda:
|
||||
|
||||
Installing conda packages
|
||||
=========================
|
||||
|
||||
Conda lets you install new languages (such as new versions of python, node, R, etc)
|
||||
as well as packages in those languages. For lots of scientific software, installing
|
||||
with conda is often simpler & easier than installing with pip - especially if it
|
||||
links to C / Fortran code.
|
||||
|
||||
We recommend installing packages from `conda-forge <https://conda-forge.org/>`_,
|
||||
a community maintained repository of conda packages.
|
||||
|
||||
1. Log in as an admin user and open a Terminal in your Jupyter Notebook.
|
||||
|
||||
.. image:: ../../images/notebook/new-terminal-button.png
|
||||
:alt: New Terminal button under New menu
|
||||
|
||||
If you already have a terminal open as an admin user, that should work too!
|
||||
|
||||
2. Install a package!
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
sudo -E conda install -c conda-forge gdal
|
||||
|
||||
This installs the ``gdal`` library from ``conda-forge`` and makes it available
|
||||
to all users. ``gdal`` is much harder to install with pip.
|
||||
|
||||
.. note::
|
||||
|
||||
If you get an error message like ``sudo: conda: command not found``,
|
||||
make sure you are not missing the ``-E`` parameter after ``sudo``.
|
||||
|
||||
.. _howto/env/user_environment_apt:
|
||||
|
||||
Installing apt packages
|
||||
=======================
|
||||
|
||||
`apt <https://help.ubuntu.com/lts/serverguide/apt.html.en>`_ is the official package
|
||||
manager for the `Ubuntu Linux distribution <https://www.ubuntu.com/>`_. You can install
|
||||
utilities (such as ``vim``, ``sl``, ``htop``, etc), servers (``postgres``, ``mysql``, ``nginx``, etc)
|
||||
and a lot more languages than present in ``conda`` (``haskell``, ``prolog``, ``INTERCAL``).
|
||||
Some third party software (such as `RStudio <https://www.rstudio.com/products/rstudio/download/>`_)
|
||||
is distributed as ``.deb`` files, which are the files ``apt`` uses to install software.
|
||||
|
||||
You can search for packages with `Ubuntu Package search <https://packages.ubuntu.com/>`_ -
|
||||
make sure to look in the version of Ubuntu you are using!
|
||||
|
||||
1. Log in as an admin user and open a Terminal in your Jupyter Notebook.
|
||||
|
||||
.. image:: ../../images/notebook/new-terminal-button.png
|
||||
:alt: New Terminal button under New menu
|
||||
|
||||
If you already have a terminal open as an admin user, that should work too!
|
||||
|
||||
2. Update list of packages available. This makes sure you get the latest version of
|
||||
the packages possible from the repositories.
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
sudo apt update
|
||||
|
||||
3. Install the packages you want.
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
sudo apt install mysql-server git
|
||||
|
||||
This installs (and starts) a ``MySQL <https://www.mysql.com/>`` database server
|
||||
and ``git``.
|
||||
|
||||
|
||||
User environment location
|
||||
=========================
|
||||
|
||||
The user environment is a conda enviornment set up in ``/opt/tljh/user``, with
|
||||
a Python3 kernel as the default. It is readable by all users, but writeable only
|
||||
by users who have root access. This makes it possible for JupyterHub admins (who have
|
||||
root access with ``sudo``) to install software in the user environment easily.
|
||||
|
||||
Accessing user environment outside JupyterHub
|
||||
=============================================
|
||||
|
||||
We add ``/opt/tljh/user/bin`` to the ``$PATH`` environment variable for all JupyterHub
|
||||
users, so everything installed in the user environment is available to them automatically.
|
||||
If you are using ``ssh`` to access your server instead, you can get access to the same
|
||||
environment with:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
export PATH=/opt/tljh/user/bin:${PATH}
|
||||
|
||||
Whenever you run any command now, the user environment will be searched first before
|
||||
your system environment is. So if you run ``python3 <somefile>``, it'll use the ``python3``
|
||||
installed in the user environment (``/opt/tljh/user/bin/python3``) rather than the ``python3``
|
||||
installed in your system environment (``/usr/bin/python3``). This is usually what you want!
|
||||
|
||||
To make this change 'stick', you can add the line to the end of the ``.bashrc`` file in
|
||||
your home directory.
|
||||
|
||||
When using ``sudo``, the ``PATH`` environment variable is usually reset, for security
|
||||
reasons. This leads to error messages like:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ sudo conda install -c conda-forge gdal
|
||||
sudo: conda: command not found
|
||||
|
||||
The most common & portable way to fix this when using ``ssh`` is:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
sudo PATH=${PATH} conda install -c conda-forge gdal
|
||||
Reference in New Issue
Block a user