"title":"Instalador de utilidades del sistema | ProxMenux Documentation",
"description":"Instalador curado para 26 utilidades CLI (htop, btop, iperf3, jq, tmux, ncdu, ...) en Proxmox VE. Selección personalizada o grupos predefinidos (básico, dev, compresión, multiplexores, análisis, red). Usa el flujo canónico ensure_repositories + install_single_package.",
"ogTitle":"Instalador de utilidades del sistema | ProxMenux Documentation",
"ogDescription":"Instala herramientas CLI curadas en Proxmox VE con un clic o con selección personalizada."
},
"header":{
"title":"Instalador de utilidades del sistema",
"description":"Selector curado para 26 utilidades CLI definidas en la lista canónica PROXMENUX_UTILS. Ofrece selección personalizada, instalar todo, seis grupos predefinidos y una comprobación de verificación de instalaciones. Usa el par compartido ensure_repositories() + install_single_package() para que la configuración de repos y el feedback por paquete se mantengan consistentes en todo el proyecto.",
"body":"Instala herramientas CLI de una lista curada de 26 paquetes. Cada instalación pasa por el mismo flujo canónico: <code>ensure_repositories</code> comprueba que el host tiene un repositorio de Proxmox utilizable para la versión mayor de PVE en ejecución, después <code>install_single_package</code> ejecuta la instalación y verifica que el comando resultante esté en PATH."
"behaviourRich":"Recorre cada entrada de <code>PROXMENUX_UTILS</code>, comprueba si el comando de verificación está en PATH, imprime un resumen Disponible / Faltante."
}
]
},
"packages":{
"heading":"Los 26 paquetes",
"intro":"Definidos en el compartido <code>scripts/global/utils-install-functions.sh</code> como <code>PROXMENUX_UTILS</code> (formato: <code>package:verify_command:description</code>). Otros scripts de ProxMenux (p. ej. los lanzadores de monitorización de red para iftop / iptraf-ng / iperf3) reutilizan entradas de esta lista para que paquete + comando de verificación se mantengan sincronizados.",
"headerPackage":"Paquete",
"headerVerify":"Comando de verificación",
"headerDescription":"Descripción",
"rows":[
{
"package":"axel",
"verify":"axel",
"description":"Acelerador de descargas"
},
{
"package":"aria2",
"verify":"aria2c",
"description":"Descargador multi-origen"
},
{
"package":"btop",
"verify":"btop",
"description":"Monitor de recursos moderno"
},
{
"package":"cabextract",
"verify":"cabextract",
"description":"Extraer archivos CAB"
},
{
"package":"chntpw",
"verify":"chntpw",
"description":"Editar registro / contraseñas de Windows"
},
{
"package":"dos2unix",
"verify":"dos2unix",
"description":"Convertir archivos de texto DOS / Unix"
},
{
"package":"genisoimage",
"verify":"genisoimage",
"description":"Crear imágenes ISO"
},
{
"package":"grc",
"verify":"grc",
"description":"Coloreador genérico de logs"
},
{
"package":"htop",
"verify":"htop",
"description":"Visor interactivo de procesos"
},
{
"package":"iftop",
"verify":"iftop",
"description":"Uso de red en tiempo real"
},
{
"package":"intel-gpu-tools",
"verify":"intel_gpu_top",
"description":"Herramientas para GPU Intel"
},
{
"package":"iotop",
"verify":"iotop",
"description":"Monitorizar uso de I/O de disco"
},
{
"package":"iperf3",
"verify":"iperf3",
"description":"Pruebas de ancho de banda de red"
},
{
"package":"ipset",
"verify":"ipset",
"description":"Gestionar conjuntos de IPs"
},
{
"package":"iptraf-ng",
"verify":"iptraf-ng",
"description":"Herramienta de monitorización de red"
},
{
"package":"libguestfs-tools",
"verify":"virt-filesystems",
"description":"Utilidades de disco de VM"
},
{
"package":"msr-tools",
"verify":"rdmsr",
"description":"Acceso a MSRs de la CPU"
},
{
"package":"net-tools",
"verify":"netstat",
"description":"Herramientas de red heredadas"
},
{
"package":"plocate",
"verify":"locate",
"description":"Localizar archivos rápidamente"
},
{
"package":"s-tui",
"verify":"s-tui",
"description":"Stress-Terminal UI"
},
{
"package":"sshpass",
"verify":"sshpass",
"description":"Login SSH no interactivo"
},
{
"package":"tmux",
"verify":"tmux",
"description":"Multiplexor de terminal"
},
{
"package":"unzip",
"verify":"unzip",
"description":"Extraer archivos ZIP"
},
{
"package":"wimtools",
"verify":"wimlib-imagex",
"description":"Gestionar imágenes WIM"
},
{
"package":"zip",
"verify":"zip",
"description":"Crear archivos ZIP"
},
{
"package":"libguestfs-tools",
"verify":"virt-filesystems",
"description":"Utilidades de disco de VM"
}
]
},
"howItWorks":{
"heading":"Cómo funciona la instalación de un paquete",
"<code>ensure_repositories</code> detecta PVE 8 o 9 y lee los repositorios a través de la API de Proxmox. Un host con un repositorio de Proxmox utilizable se deja sin cambios; en un host sin suscripción activa y solo con el repositorio Enterprise se pregunta antes de cambiar a sin suscripción, y <code>apt-get update</code> se ejecuta tras un cambio aceptado.",
"verifyIntro":"Tras instalar, el comando de verificación se comprueba con <code>command -v \"$verify_cmd\"</code>. Tres desenlaces:",
"verifyOutcomes":[
"<strong>0 (éxito):</strong> comando disponible, paquete contado como <em>Successful</em>.",
"<strong>1 (fallido):</strong> apt falló, contado como <em>Failed</em>.",
"<strong>2 (advertencia):</strong> apt tuvo éxito pero el comando aún no está en PATH (refresco de hash pendiente) — contado como <em>With warnings</em>."
],
"summary":"Al final de una instalación de grupo / personalizada, un diálogo de resumen muestra los conteos de <em>Successful / With warnings / Failed</em>."
},
"verify":{
"heading":"Verificar instalaciones",
"intro":"La opción 9 es de solo lectura: recorre <code>PROXMENUX_UTILS</code> y ejecuta <code>command -v</code> para cada comando de verificación. La salida se ve así:",
"code":"Total: 26\nAvailable: 18\nMissing: 8\n\n✓ axel - Download accelerator\n✓ aria2c - Multi-source downloader\n✓ btop - Modern resource monitor\n✗ cabextract - Extract CAB files\n✓ dos2unix - Convert DOS / Unix text files\n✗ genisoimage - Create ISO images\n✓ grc - Generic log colorizer\n...",
"outro":"Útil antes de ejecutar scripts que dependen de estas herramientas (p. ej. <code>uup_dump_iso_creator.sh</code> necesita <code>aria2c</code> + <code>cabextract</code> + <code>wimlib-imagex</code>). Si falta algo, ejecuta la instalación del grupo correspondiente o elige los paquetes que faltan mediante selección personalizada."
},
"troubleshoot":{
"heading":"Solución de problemas",
"reposTitle":"\"Failed to configure repositories. Installation aborted.\"",
"reposBody":"La comprobación de repositorios no se superó: se rechazó el cambio al repositorio sin suscripción, no se pudo leer el estado de la suscripción o una entrada de repositorio requiere atención. El mensaje impreso justo encima indica la causa. Los repositorios se listan en <em>Nodo → Actualizaciones → Repositorios</em>, y <code>apt-get update</code> desde una consola muestra el error que reporta apt.",
"warningsTitle":"Un paquete se reporta como \"With warnings\" pero el comando funciona tras cerrar el menú",
"warningsBody":"Esperado. Tras <code>apt-get install</code>, el nuevo binario está en disco pero la caché de PATH del shell actual (<code>hash -t</code>) aún no lo sabe. ProxMenux ejecuta <code>hash -r</code> tras cada instalación, pero en algunos shells el refresco solo surte efecto en el siguiente prompt. Abre un nuevo shell y el comando funcionará.",
"hangsTitle":"Un apt install se queda colgado",
"hangsBody":"Lo más probable es que un prompt de debconf esté bloqueado detrás de la salida silenciada. El script envuelve todas las llamadas de apt con <code>DEBIAN_FRONTEND=noninteractive</code>, que normalmente suprime los prompts, pero algunos paquetes aún requieren entrada del usuario. Cancela con <kbd>Ctrl</kbd>+<kbd>C</kbd>, ejecuta <code>apt-get install -y <pkg></code> manualmente desde un shell para ver el prompt y decidir."
"code":"scripts/utilities/system_utils.sh # este script\nscripts/global/utils-install-functions.sh # PROXMENUX_UTILS, install_single_package\nscripts/global/repository-functions.sh # ensure_repositories\nscripts/global/repository_policy.py # lee y cambia los repositorios a través de la API de Proxmox\n/etc/apt/sources.list.d/proxmox.sources # fuente sin suscripción, escrita por Proxmox al aceptar el cambio"