Skip to content

Installing Packages

Desktops do not need internet access to install Python and R packages. Each eLab runs its own package mirror — a curated set of packages approved for the environment — and every desktop is already pointed at it, so the commands you normally use just work:

pip install polars
install.packages("data.table")

There is nothing to configure. pip and R's install.packages() resolve against the mirror first, and conda-managed environments use the same pip setting when you install with pip inside them.

What you can install

The mirror only contains packages that have been approved for your eLab. Installing something the mirror does not carry fails with the usual "no matching distribution" (Python) or "package not available" (R) message. That is not a fault with your desktop — it means the package has not been added to the mirror yet.

Whether anything beyond the mirror is reachable depends on how your eLab is configured:

  • In a secure data environment, the mirror is the only package source. Desktops have no route to PyPI, CRAN or conda channels, so a package that is not on the mirror cannot be installed by any means.
  • In a teaching environment, desktops normally fall through to PyPI and CRAN for anything the mirror does not carry, so the mirror mainly saves download time. Your administrator can opt to make teaching desktops mirror-only too, so that the package surface matches the secure environment exactly.

Conda channels (conda-forge and the like) are not mirrored. In a secure environment conda install will not find packages; use pip install inside your conda environment instead.

Asking for a package to be added

The mirror's contents are a list maintained by your organisation's platform operator, who reviews additions before they are published. Send them the package name, the source (PyPI or CRAN) and, if it matters to you, the version. Additions appear on the mirror at the next configuration run; you do not need to restart your desktop, and your next pip install or install.packages() will see the new package.

Requests that need a different source — a conda-only package, something installed from a git repository, a system library — are outside what the mirror can serve. Raise those with the eLab team so they can advise on the right route, which for a secure environment is usually the airlock.

Browsing the mirror

The mirror is served from https://<your-elab-address>/packages/ and is reachable only from inside a desktop. Open https://<your-elab-address>/packages/simple/ in the desktop's Firefox to see the Python packages it carries, in the plain index format pip reads. The R packages live under https://<your-elab-address>/packages/cran/; in R, available.packages() lists them.