fix(scripts): install-arje no esconde el build — chequeo previo + salida visible

El `>/dev/null` del paso 1 ocultaba lo que pasaba: si faltaba un
prerrequisito o el build moría, sólo se veía «paso 1/5» y el script
salía silencioso. Cambios:

- Paso 0 nuevo: chequeo de cargo / musl-gcc / busybox / cpio / gzip /
  rust target con mensajes accionables por distro (Fedora + Debian).
- El build de cargo deja fluir su salida a la terminal — incluida la
  espera de 10-20 min la primera vez, así no parece un cuelgue.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
sergio
2026-05-22 23:48:24 +00:00
parent 8fc1d99ddf
commit 8787b0566a
+24 -1
View File
@@ -59,8 +59,31 @@ if [ ! -e /sbin/init ] && [ ! -e /lib/systemd/systemd ] && [ ! -e /usr/lib/syste
[ "$ans" = "y" ] || exit 3
fi
# Chequeo de prerrequisitos antes de arrancar la compilación, así un
# fallo da un mensaje accionable en vez de irse silencioso a /dev/null.
echo "[install-arje] paso 0/5: chequeo de prerrequisitos"
missing=()
command -v cargo >/dev/null 2>&1 || missing+=("cargo (rustup: curl https://sh.rustup.rs -sSf | sh)")
command -v musl-gcc >/dev/null 2>&1 || missing+=("musl-gcc (Fedora: dnf install musl-gcc musl-libc-static · Debian: apt install musl-tools)")
command -v busybox >/dev/null 2>&1 || missing+=("busybox-static (Fedora: dnf install busybox · Debian: apt install busybox-static)")
command -v cpio >/dev/null 2>&1 || missing+=("cpio")
command -v gzip >/dev/null 2>&1 || missing+=("gzip")
if [ "${#missing[@]}" -gt 0 ]; then
echo "[install-arje] faltan prerrequisitos:" >&2
printf " - %s\n" "${missing[@]}" >&2
exit 6
fi
SYSROOT="$(rustc --print sysroot 2>/dev/null || true)"
if [ -z "$SYSROOT" ] || [ ! -d "$SYSROOT/lib/rustlib/$TARGET" ]; then
echo "[install-arje] falta el target Rust '$TARGET' (sysroot=$SYSROOT)" >&2
echo " Instalalo con: rustup target add $TARGET" >&2
exit 7
fi
echo "[install-arje] paso 1/5: compilar binarios musl-static"
"$SCRIPT_DIR/build-arje-initrd.sh" "$SEED" /tmp/arje-noop.cpio.gz >/dev/null
echo " (la PRIMERA vez tarda 10-20 minutos en una VPS de 4 GB; la salida"
echo " de cargo va a fluir directo a esta terminal — no es un cuelgue)"
"$SCRIPT_DIR/build-arje-initrd.sh" "$SEED" /tmp/arje-noop.cpio.gz
rm -f /tmp/arje-noop.cpio.gz
BIN_DIR="$REPO_DIR/target/$TARGET/release"
EX_DIR="$BIN_DIR/examples"