The Nextjournal Bash Environment

The default environment for Bash, and the basis of many other Nextjournal environments.

The Minimal Bash environment is the default for a Bash cell, and also serves as the base for most language images. Below is a list of installed packages.

apt list --installed

The environment is currently based off the Ubuntu 18.04 LTS Docker image.

Ubuntu Base
Download as Docker image from:
This image was imported from: ubuntu:18.04

We set the timezone and install some basic packages including gnupg and git. We've also set a number of environment variables in the runtime's settings—in particular, the value of NEXTJOURNAL_MOUNT_CUDA sets the default Nvidia CUDA and cuDNN versions for all descendant environments.

echo "UTC" > /etc/timezone

echo 'APT::Get::Assume-Yes "true";' > /etc/apt/apt.conf.d/90-yes

apt-get -qq update
DEBIAN_FRONTEND=noninteractive \
  apt-get install --no-install-recommends apt-utils net-tools \
  ca-certificates locales tzdata sudo \
  curl wget zip unzip gzip bzip2 xz-utils unrar p7zip-full \
  gnupg git patch \
  fontconfig fonts-dejavu fonts-liberation2 fonts-arkpandora
apt-get clean
rm -r /var/lib/apt/lists/* # Clear package list so it isn't stale

Generate the locale that we set in the environment variables.

locale-gen en_US.UTF-8
update-locale LANG=en_US.UTF-8 LANGUAGE=en_US.en LC_ALL=en_US.UTF-8

And ensure the GPU libraries can be used.

echo "/usr/local/cuda/lib64" >> /etc/
echo "/usr/local/nvidia/lib64" >> /etc/

Install a small selection of open fonts from Google Fonts.

cd /usr/share/fonts/truetype
sudo unzip -d . Google
shopt -s extglob
sudo chmod -R --reference=/usr/share/fonts/truetype/dejavu \

fc-cache -f