install.sh fails under sh (dash) on Debian: set -euo pipefail is bash-only #12
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Found by the dit-e2e T0 install-smoke scenario (2026-08-17).
Bug:
install.shbegins#!/usr/bin/env bash+set -euo pipefail, but the shebang is ignored when piped via| sh -s --. Debian 12's/bin/shis dash, which dies immediately:Exit 2, no binary installed.
Reproduction (Debian 12 VM):
The
| bash -s --form works (and is what install.sh's own usage header documents). But the operator READMEs and many users will copy-paste the| sh -s --form, which is the conventional one-liner pattern.Fix options:
set -euo pipefailwith POSIXset -eu(drop pipefail — dash doesn't support it).set -eu).| bash -s --instead of| sh -s --.Option 1 is the smallest change and keeps pipefail for bash users while not breaking dash. pipefail can be conditionally enabled:
set -eu; set -o pipefail 2>/dev/null || true.Context: the dit-e2e harness T0 scenario pins the
| bash -s --form as a workaround. This issue tracks fixing install.sh so the conventional| sh -s --form works on Debian/Ubuntu (dash).Filed by dn-tech from dit-e2e T0 live verification.