diff --git a/script/todo/qemu_install_monitor.py b/script/todo/qemu_install_monitor.py index 3d16034..234c212 100644 --- a/script/todo/qemu_install_monitor.py +++ b/script/todo/qemu_install_monitor.py @@ -127,7 +127,7 @@ def run_monitor(manifest_path: str) -> None: CSS = """ DataTable { width: 40; border: solid $accent; } RichLog { border: solid $accent; } - #sshbar { height: 1; color: $text-muted; } + #sshbar { height: 2; color: $text-muted; } """ BINDINGS = [ ("q", "quit", "Quitter (détaché)"), @@ -173,8 +173,9 @@ def run_monitor(manifest_path: str) -> None: bar = self.query_one("#sshbar", Static) if vm: bar.update( - f" {vm['ssh']} (s = SSH · c = copier le log · " - "Maj+glisser = sélectionner)" + f" {vm['ssh']} (s = SSH · c = copier le log · " + "Maj+glisser = sélectionner)\n" + f" Log : {vm['log']}" ) def _load_selected_log(self, reset=False): diff --git a/script/todo/todo.py b/script/todo/todo.py index 8d4490e..81fcafc 100755 --- a/script/todo/todo.py +++ b/script/todo/todo.py @@ -1673,9 +1673,11 @@ class TODO: puis clone + make install_os + make install_odoo_18).""" return ( "set -e; " - # Outils d'amorçage (absents des images cloud minimales) : - # curl, git, make. Supporte apt (Debian/Ubuntu) et dnf/yum - # (Fedora). apt-get update car cloud-init n'a pas rafraîchi apt. + # Outils d'amorçage (absents des images cloud minimales) : curl, + # git, make. Chaque branche RAFRAÎCHIT d'abord les dépôts pour que + # la VM soit la plus rapide possible (miroirs à jour / les plus + # rapides), puis installe. Supporte apt (Debian/Ubuntu), dnf/yum + # (Fedora) et pacman (Arch). "PKGS='curl git make'; " "if command -v apt-get >/dev/null 2>&1; then " # update best-effort (|| true) puis install OBLIGATOIRE : sans le @@ -1684,15 +1686,24 @@ class TODO: "sudo apt-get update -qq || true; " "sudo apt-get install -y $PKGS; " "elif command -v dnf >/dev/null 2>&1; then " - # --refresh (métadonnées à jour) ; retry avec « clean all » car les - # images cloud fraîches ratent parfois la vérif GPG/checksum d'un - # miroir (« Signature verification failed »). + # makecache (dnf5 choisit les miroirs les plus rapides) puis + # install --refresh ; retry avec « clean all » car les images + # cloud fraîches ratent parfois la vérif GPG/checksum d'un miroir. + "sudo dnf -q makecache || true; " "sudo dnf install -y --refresh $PKGS || " "{ sudo dnf clean all; sudo dnf install -y --refresh $PKGS; }; " + "elif command -v pacman >/dev/null 2>&1; then " + # Arch : reflector sélectionne les miroirs HTTPS les plus rapides, + # puis rafraîchit la base et installe. + "sudo pacman -Sy --needed --noconfirm reflector || true; " + "sudo reflector --latest 20 --protocol https --sort rate " + "--save /etc/pacman.d/mirrorlist || true; " + "sudo pacman -Syy --noconfirm || true; " + "sudo pacman -S --needed --noconfirm $PKGS; " "elif command -v yum >/dev/null 2>&1; then " - "sudo yum install -y $PKGS; " - "else echo 'Aucun gestionnaire de paquets (apt/dnf/yum)'; " - "exit 1; fi; " + "sudo yum makecache -q || true; sudo yum install -y $PKGS; " + "else echo 'Aucun gestionnaire de paquets " + "(apt/dnf/pacman/yum)'; exit 1; fi; " # Vérifie explicitement que tout est là : erreur nette plutôt # qu'un « command not found » cryptique plus loin. "for t in curl git make; do command -v $t >/dev/null 2>&1 || "