Software Environment#
It is possible to customize the software environment, to which users in their projects are exposed to, in various ways.
Within a Project#
Users are able to install their own software packages in their projects. It’s essentially a fully Linux environment without elevated privileges.
Read more:
CoCalc Doc: Installing Python Packages
Global Software#
See Projects Software about how to get read/write access to the global /ext
mountpoint.
This is quite powerful, because it allows you to install software packages globally, which are then available to all projects.
Note
Useful detail: if a file /ext/.bashrc
exists, it is sourced by
all projects via their local ~/.bashrc
file. This means it is
possible to extend the path, configure aliases, etc. right there.
If some users want to opt out for a project, they just have to
comment or delete this from the bottom of their local ~/.bashrc
file.
Jupyter Kernels#
It is possible to globally deploy customized Jupyter Kernels. Each
sub-directory of /ext/jupyter/kernels/
could hold your own kernels,
where that /ext
mountpoint is where the globally shared read-only
filesystem is mounted in all projects (see Projects Software).
This works, because by default $JUPYTER_PATH
points to that jupyter directory.
Globally installed kernels with the same directory name can be overwritten,
because that path takes precedence – e.g. python3
.
Project Image#
The entire project image can be built from a Dockerfile by you.
Look into the /project
directory for more details.
This is the most flexible way to customize the software environment.
The section here is work in progress…