From 8787b0566a7c04e1cc15107039eaeedfad193879 Mon Sep 17 00:00:00 2001 From: sergio Date: Fri, 22 May 2026 23:48:24 +0000 Subject: [PATCH] =?UTF-8?q?fix(scripts):=20install-arje=20no=20esconde=20e?= =?UTF-8?q?l=20build=20=E2=80=94=20chequeo=20previo=20+=20salida=20visible?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- scripts/install-arje-as-init.sh | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/scripts/install-arje-as-init.sh b/scripts/install-arje-as-init.sh index fbe0ba7..25314a0 100755 --- a/scripts/install-arje-as-init.sh +++ b/scripts/install-arje-as-init.sh @@ -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"