NVIDIA / enroot

A simple yet powerful tool to turn traditional container/OS images into unprivileged sandboxes.
Apache License 2.0
649 stars 94 forks source link

zstd is a runtime dependency but is not documented in installation #208

Open tpdownes opened 2 months ago

tpdownes commented 2 months ago

After following doc/installation.md to install build and runtime dependencies before compiling enroot,I attempt to invoke enroot via the pyxis plugin for Slurm and get the following error. It appears that zstd is an enroot runtime dependency.

pyxis: importing docker image: alpine
slurmstepd: error: pyxis: child 11486 failed with error code: 1
slurmstepd: error: pyxis: failed to import docker image
slurmstepd: error: pyxis: printing enroot log file:
slurmstepd: error: pyxis:     [ERROR] Command not found: zstd
slurmstepd: error: pyxis: couldn't start container
slurmstepd: error: spank: required plugin spank_pyxis.so: task_init() failed with rc=-1
slurmstepd: error: Failed to invoke spank plugin stack
slurmstepd: error: pyxis: child 11499 failed with error code: 1

The problem goes away when I install the zstd package on Ubuntu 20.04. It appears to be the same package name in Debian and on RedHat derivatives. In fact, the list of runtime dependencies declared in the packaging files is considerably longer than in the documentation, although many are commonly installed by default:

Requires: bash >= 4.2, curl, gawk, jq >= 1.5, parallel, shadow-utils, squashfs-tools
Requires: coreutils, grep, findutils, gzip, glibc-common, sed, tar, util-linux, zstd

and


Depends: ${shlibs:Depends}, ${misc:Depends},
 bash (>= 4.2),
 curl,
 gawk | mawk,
 jq (>= 1.5),
 parallel,
 passwd,
 squashfs-tools,
 zstd,
 bsdmainutils,
``
3XX0 commented 2 months ago

Yeah I think it's just zstd missing from the doc