# Add the arvados signing key
cat /tmp/1078ECD7.asc | $SUDO apt-key add -
-# Add the debian keys
-wait_for_apt_locks && $SUDO DEBIAN_FRONTEND=noninteractive apt-get install --yes debian-keyring debian-archive-keyring
+# Add the debian keys (but don't abort if we can't find them, e.g. on Ubuntu where we don't need them)
+wait_for_apt_locks && $SUDO DEBIAN_FRONTEND=noninteractive apt-get install --yes debian-keyring debian-archive-keyring 2>/dev/null || true
# Fix locale
$SUDO /bin/sed -ri 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen
# We want Docker 20.10 or later so that we support glibc 2.33 and up in the container, cf.
# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1005906
+dockerversion=5:20.10.13~3-0
if [[ "$DIST" =~ ^debian ]]; then
family="debian"
if [ "$DIST" == "debian10" ]; then
echo deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/$family/ $distro stable | \
$SUDO tee /etc/apt/sources.list.d/docker.list
$SUDO apt-get update
-$SUDO apt-get -yq --no-install-recommends install docker-ce=5:20.10.13~3-0~$family-$distro
+$SUDO apt-get -yq --no-install-recommends install docker-ce=${dockerversion}~${family}-${distro}
# Set a higher ulimit and the resolver (if set) for docker
$SUDO sed "s/ExecStart=\(.*\)/ExecStart=\1 --default-ulimit nofile=10000:10000 ${SET_RESOLVER}/g" \
$SUDO systemctl disable docker
# Get Go and build singularity
-goversion=1.17.1
mkdir -p /var/lib/arvados
rm -rf /var/lib/arvados/go/
-curl -s https://storage.googleapis.com/golang/go${goversion}.linux-amd64.tar.gz | tar -C /var/lib/arvados -xzf -
+curl -s https://storage.googleapis.com/golang/go${GOVERSION}.linux-amd64.tar.gz | tar -C /var/lib/arvados -xzf -
ln -sf /var/lib/arvados/go/bin/* /usr/local/bin/
-singularityversion=3.7.4
+singularityversion=3.9.9
curl -Ls https://github.com/sylabs/singularity/archive/refs/tags/v${singularityversion}.tar.gz | tar -C /var/lib/arvados -xzf -
cd /var/lib/arvados/singularity-${singularityversion}