From 0120a101abf7328887dbc4e215a9817f96a3e577 Mon Sep 17 00:00:00 2001 From: lgromero Date: Fri, 6 Sep 2024 11:21:06 +0200 Subject: [PATCH] refs #404 Unifies all the apt install in one install --- installer/ogboot_installer.py | 53 +++++++++++++++++++++-------------- 1 file changed, 32 insertions(+), 21 deletions(-) diff --git a/installer/ogboot_installer.py b/installer/ogboot_installer.py index 5b0ed64..07fa344 100755 --- a/installer/ogboot_installer.py +++ b/installer/ogboot_installer.py @@ -181,27 +181,38 @@ def get_missing_packages(): logger.info(f"Package to install: {package}...") return faltantes -def install_packages(missing, log_packages_file=f"/tmp/installed_packages.log"): - if not missing: - logger.info("All packages are already installed.") - return - logger.info("Upgrading the system...") - original_debian_frontend = os.environ.get('DEBIAN_FRONTEND') - try: - os.environ['DEBIAN_FRONTEND'] = 'noninteractive' - subprocess.run(["sudo", "apt-get", "update"], check=True) - with open(log_packages_file, "a") as log: - for package in missing: - subprocess.run(["sudo", "apt-get", "install", "--allow-change-held-packages", "-y", package], check=True) - logger.info(f"{package} installed correctly.") - log.write(package + "\n") - logger.info("All missing packages have been installed.") - finally: - # Restaurar el valor original de DEBIAN_FRONTEND - if original_debian_frontend is not None: - os.environ['DEBIAN_FRONTEND'] = original_debian_frontend - else: - del os.environ['DEBIAN_FRONTEND'] +def install_packages(missing, log_packages_file="/tmp/installed_packages.log"): + if not missing: + logger.info("All packages are already installed.") + return + + logger.info("Upgrading the system...") + original_debian_frontend = os.environ.get('DEBIAN_FRONTEND') + + try: + os.environ['DEBIAN_FRONTEND'] = 'noninteractive' + # Actualizamos la lista de paquetes + subprocess.run(["sudo", "apt-get", "update"], check=True) + + # Instalamos todos los paquetes de una sola vez + subprocess.run( + ["sudo", "apt-get", "install", "--allow-change-held-packages", "-y", "--no-install-recommends"] + missing, + check=True + ) + + with open(log_packages_file, "a") as log: + for package in missing: + logger.info(f"{package} installed correctly.") + log.write(package + "\n") + + logger.info("All missing packages have been installed.") + + finally: + # Restaurar el valor original de DEBIAN_FRONTEND + if original_debian_frontend is not None: + os.environ['DEBIAN_FRONTEND'] = original_debian_frontend + else: + del os.environ['DEBIAN_FRONTEND'] def autoConfigure(): global OSDISTRIB, OSVERSION