Files
ProxMenux/web/messages/es/docs/utils/system-update.json
T

169 lines
18 KiB
JSON

{
"meta": {
"title": "Actualización del sistema Proxmox | Documentación de ProxMenux",
"description": "Actualiza los paquetes dentro de la versión mayor actual de Proxmox con apt-get update y apt full-upgrade -y. Comprueba el espacio en disco y los repositorios configurados, intenta recuperar las claves GPG, comprueba y repara cabeceras PV antiguas de LVM, recompila los controladores DKMS gestionados cuando hace falta, ejecuta autoremove/autoclean y ofrece reiniciar cuando es necesario.",
"ogTitle": "Actualización del sistema Proxmox | Documentación de ProxMenux",
"ogDescription": "apt full-upgrade con comprobación de repositorios, autoremove/autoclean y confirmación de reinicio cuando es necesario."
},
"header": {
"title": "Actualización del sistema Proxmox",
"description": "Delega en un único script (<code>update-pve-safe.sh</code>) que detecta la versión mayor de Proxmox en ejecución. Los repositorios configurados se leen mediante la API de Proxmox y se conservan; si un host sin suscripción solo tiene Enterprise, se pide confirmación antes de cambiar a no-subscription. El script actualiza los paquetes y recompila los controladores DKMS gestionados por ProxMenux para un kernel pendiente de arrancar. El script principal ofrece reiniciar si existe la marca de reinicio del sistema o si el kernel más reciente instalado difiere del que está en ejecución. También se puede iniciar desde <em>Update Now</em> en la cabecera de ProxMenux Monitor cuando se detectan actualizaciones pendientes.",
"section": "Utilidades"
},
"calloutWhat": {
"title": "Qué hace",
"body": "Lleva el host al último nivel de parches de su versión mayor actual. <strong>No</strong> hace el salto entre versiones mayores — para PVE 8 → PVE 9 mira <link>Actualizar PVE 8 a PVE 9</link>."
},
"official": {
"heading": "La recomendación oficial de Proxmox",
"intro": "La guía de upgrade de la propia Proxmox para un host en ejecución (dentro de la misma versión mayor) es ejecutar:",
"code": "apt update && apt full-upgrade -y",
"outro": "Esa única línea es el comando oficial en cualquier release actual de Proxmox. La parte difícil no es el upgrade en sí; es asegurar que los repositorios están limpios, que están habilitados los correctos y que el host queda en un estado razonable después."
},
"onTop": {
"heading": "Qué añade ProxMenux: verificado en el código",
"intro": "Usa <strong>la misma operación apt full-upgrade</strong>, con comprobación de repositorios, recompilación DKMS y limpieza posterior. Los pasos siguientes corresponden a <code>scripts/utilities/proxmox_update.sh</code> y a su único script de ejecución, <code>scripts/global/update-pve-safe.sh</code>:",
"items": [
"<strong>Detecta la versión mayor de PVE</strong> dentro del script (<code>pveversion | grep -oP ''pve-manager/\\K[0-9]+''</code>). Un único script gestiona PVE 8 y PVE 9; los repositorios configurados se conservan salvo que un host sin suscripción acepte el cambio ofrecido.",
"<strong>Mantiene los repositorios configurados.</strong> <code>ensure_repositories</code> lee los repositorios a través de la API de repositorios de Proxmox, junto con el estado de la suscripción. Un host con suscripción activa, o que ya usa el repositorio sin suscripción o el de test, se deja sin cambios. En un host sin suscripción activa cuyo único repositorio de Proxmox es Enterprise se pregunta si se cambia a sin suscripción; al rechazarlo, la actualización se detiene sin modificar ninguna fuente.",
"<strong>Ejecuta la actualización sin interacción</strong> con <code>DEBIAN_FRONTEND=noninteractive</code> y <code>--force-confdef --force-confold</code>. Para las decisiones sobre archivos de configuración de dpkg, acepta la acción predeterminada si existe; en caso contrario conserva el archivo actual.",
"<strong>No fuerza la instalación de utilidades opcionales.</strong> El script no instala por la fuerza <code>zfsutils-linux</code>, <code>chrony</code>, <code>ifupdown2</code> ni paquetes similares. Una instalación de Proxmox que haya prescindido de alguno mantiene esa elección. Los paquetes que faltan se señalan en los procesos de instalación superiores, no en el de actualización.",
"<strong>Comprobación y reparación de metadatos LVM.</strong> Detecta cabeceras PV antiguas y ejecuta vgck --updatemetadata y vgchange -ay para los grupos de volúmenes afectados. Puede cambiar metadatos LVM; no se limita a mostrar avisos.",
"<strong>Limpia después:</strong> <code>apt-get autoremove -y</code> + <code>apt-get autoclean -y</code>.",
"<strong>Recompilación DKMS antes de ofrecer el reinicio.</strong> El script de ejecución llama a <code>pmx_rebuild_dkms_after_kernel</code> cuando hay un kernel instalado más reciente pendiente de arrancar. El script principal comprueba <code>/var/run/reboot-required</code> y usa también <code>dpkg-query</code> para comparar el kernel que indica <code>uname -r</code> con el paquete <code>proxmox-kernel-*-pve-signed</code> / <code>pve-kernel-*-pve</code> más reciente instalado. La marca puede faltar en hosts sin <code>needrestart</code>; la comparación de kernels sigue funcionando en ese caso."
]
},
"calloutOneSentence": {
"title": "En una frase",
"body": "Actualiza los paquetes del host, conserva los repositorios configurados salvo que aceptes un cambio, comprueba los metadatos LVM, recompila los controladores DKMS gestionados, limpia con autoremove/autoclean y ofrece reiniciar cuando es necesario."
},
"confirm": {
"heading": "Diálogo de confirmación",
"intro": "Al seleccionar la opción se abre un resumen de lo que hará el script y se solicita confirmación explícita:",
"imageAlt": "Diálogo de confirmación de la actualización del sistema Proxmox con comprobación de repositorios, actualización de paquetes y limpieza"
},
"routes": {
"heading": "Cómo se delega la ejecución",
"nodes": {
"source": {
"label": "proxmox_update.sh",
"detail": "pveversion |\ngrep -oP ''pve-manager/\\K[0-9]+''"
},
"bridge": {
"label": "Único script de ejecución",
"detail": "update-pve-safe.sh\n(detecta PVE 8 / 9\ninternamente)"
},
"target": {
"label": "Post-actualización",
"detail": "apt-get autoremove\napt-get autoclean\nConfirmación de reinicio si es necesario"
}
}
},
"worker": {
"heading": "Qué hace el script de ejecución",
"intro": "Un único script (<code>scripts/global/update-pve-safe.sh</code>) gestiona PVE 8 (<code>bookworm</code>) y PVE 9 (<code>trixie</code>). Detecta la versión mayor y comprueba la configuración actual de repositorios sin reescribir las fuentes base de Debian. Las etapas son:",
"items": [
"<strong>Comprobaciones previas.</strong> Verifica al menos ~1 GB libres en <code>/var/cache/apt/archives</code>. Aborta pronto con un mensaje claro cuando falla, para que la ejecución no muera a mitad de una transacción apt.",
"<strong>Comprobación de repositorios.</strong> <code>ensure_repositories</code> lee los repositorios y el estado de la suscripción. En un host con un repositorio de Proxmox utilizable no cambia nada; en un host sin suscripción activa y solo con el repositorio Enterprise pregunta antes de cambiar a sin suscripción, y detiene la actualización cuando la respuesta es no.",
"<strong>Apt update con auto-recuperación de GPG.</strong> Ante un <code>NO_PUBKEY</code> de cualquier repo (los propios o uno de terceros), el worker importa la clave que falta y vuelve a intentar automáticamente antes de fallar.",
"<strong>Actualizaciones pendientes + conteo de seguridad.</strong> Reporta cuántos paquetes van a cambiar y cuántos de esos vienen de la suite de seguridad, para que el diálogo de confirmación tenga números reales que mostrar.",
"<strong>Diálogo de confirmación.</strong> Tras refrescar las listas de paquetes, el script solicita un sí explícito antes de ejecutar la actualización de paquetes.",
"<strong>apt full-upgrade.</strong> Usa <code>DEBIAN_FRONTEND=noninteractive</code> y <code>--force-confdef --force-confold</code>. Dpkg aplica su acción predeterminada a las decisiones sobre archivos de configuración cuando existe; en caso contrario conserva el archivo actual.",
"<strong>Comprobación de LVM.</strong> <code>lvm_repair_check</code> actualiza los metadatos de los grupos de volúmenes cuando los discos cedidos directamente a máquinas virtuales (DSM, TrueNAS o dispositivos de almacenamiento) vuelven con cabeceras PV antiguas.",
"<strong>Recompilación DKMS de los controladores gestionados por ProxMenux.</strong> Cuando hay un kernel nuevo pendiente de arrancar, <code>pmx_rebuild_dkms_after_kernel</code> consulta en <code>components_status.json</code> los controladores instalados por ProxMenux (actualmente <code>nvidia_driver</code> → módulo <code>nvidia</code> y <code>coral_driver</code> → módulo <code>gasket</code>), instala las cabeceras correspondientes (<code>proxmox-headers-&lt;newkver&gt;</code> si está disponible; si no, <code>pve-headers-&lt;newkver&gt;</code>) y ejecuta <code>dkms autoinstall -k &lt;newkver&gt;</code>. Si <code>dkms status</code> no muestra los módulos compilados para el kernel nuevo, vuelve a ejecutar cada instalador con <code>--auto-reinstall</code>. Los fallos se registran sin cancelar la actualización, que continúa hasta la confirmación de reinicio.",
"<strong>Limpieza posterior.</strong> <code>apt-get autoremove</code> + <code>apt-get autoclean</code> antes de devolver el control al script principal."
]
},
"post": {
"heading": "Limpieza post-actualización y reinicio",
"intro": "Cuando finaliza el script de ejecución, el script principal ejecuta:",
"code": "apt-get autoremove -y # drop unused dependencies pulled in by old packages\napt-get autoclean # drop downloaded .deb files no longer in the index",
"afterCode": "El script principal también comprueba si hace falta reiniciar. Cualquiera de estas señales activa la pregunta:",
"items": [
"Existe <code>/var/run/reboot-required</code>: un paquete o una herramienta del sistema ha marcado que el host necesita reiniciarse.",
"El paquete de kernel Proxmox más reciente instalado difiere del kernel en ejecución, según <code>dpkg-query</code> y uname -r."
],
"outro": "Si se cumple alguna condición, un diálogo de whiptail pregunta <em>«Algunos cambios requieren reiniciar para aplicarse. ¿Quieres reiniciar ahora?»</em>. Recházalo para seguir con el kernel actual hasta que decidas reiniciar manualmente, por ejemplo durante una ventana de mantenimiento."
},
"end": {
"heading": "Qué ves al final",
"intro": "Cuando termina el script de ejecución, el terminal muestra el resultado de la limpieza y, si hace falta reiniciar, la pregunta correspondiente:",
"imageAlt": "Resumen final de la actualización del sistema Proxmox con el resultado de la limpieza y la confirmación de reinicio"
},
"calloutDeclineReboot": {
"title": "Pospón el reinicio solo si sabes por qué",
"body": "Instalar un paquete <code>proxmox-kernel-*</code> nuevo no sustituye al kernel en ejecución hasta que reinicies. El nuevo kernel y sus módulos correspondientes se activan en el siguiente arranque. Planifica el reinicio para una ventana de mantenimiento adecuada y revisa antes los avisos de compilación DKMS."
},
"noSub": {
"heading": "Cómo trata el script al repositorio Enterprise",
"intro": "Proxmox entrega los hosts con el repositorio Enterprise habilitado por defecto. Sin una suscripción activa, ese repositorio devuelve 401 en <code>apt-get update</code>. El worker seguro cambia los repositorios solo en ese caso, solo tras preguntar, y a través de la API de repositorios de Proxmox — la misma que hay detrás de <em>Nodo → Actualizaciones → Repositorios</em>. Lo que ocurre en cada caso:",
"items": [
"Con una <strong>suscripción activa</strong>, los repositorios se dejan sin cambios y Enterprise dirige la actualización.",
"Con el <strong>repositorio sin suscripción o el de test ya habilitado</strong>, los repositorios se dejan sin cambios, sea lo que sea lo que haya configurado a su lado.",
"<strong>Sin suscripción activa y solo con el repositorio Enterprise</strong>, un diálogo ofrece el cambio. Al aceptar, se deshabilita la fuente Enterprise, se habilita la de sin suscripción y se refrescan las listas de paquetes; el cambio queda registrado en la vista <em>Changes</em> de Audit & Report. Al rechazarlo, la actualización se detiene sin modificar ninguna fuente.",
"Las <strong>fuentes Enterprise de Ceph</strong>, cuando existen, se deshabilitan en el mismo cambio sin elegir otro canal de Ceph; un host que usa Ceph configura su canal por separado.",
"Cuando la ejecución <strong>no tiene un terminal en el que preguntar</strong>, no se modifica ninguna fuente y la actualización se detiene con un mensaje que remite a <em>Nodo → Actualizaciones → Repositorios</em>."
],
"outro": "Las fuentes de Debian y cualquier otro archivo de repositorios nunca se editan desde la ruta de actualización. Una fuente que mezcla Enterprise con otros componentes en la misma entrada no se cambia: la actualización se detiene y pide separarla desde la vista de repositorios de Proxmox."
},
"cluster": {
"heading": "Consideraciones de clúster",
"calloutTitle": "En clústeres: actualiza un nodo a la vez",
"calloutBody": "En un clúster Proxmox, ejecuta esta opción en <strong>un nodo a la vez</strong> y espera a que el reinicio se complete antes de pasar al siguiente. Migra primero los guests fuera del nodo para evitar una interrupción de servicio en todo el clúster. Versiones menores mezcladas (p. ej. 8.4.1 y 8.4.5) funcionan bien durante horas; kernels en ejecución mezclados pueden producir comportamientos inesperados en guests gestionados por HA."
},
"doesnt": {
"heading": "Qué no hace",
"items": [
"<strong>Salto de versión mayor.</strong> 8 → 9 es una operación aparte — mira <link>Actualizar PVE 8 a PVE 9</link>.",
"<strong>Backup.</strong> Sin snapshots, sin rollback. Las operaciones de apt no son transaccionales. Combínalo con tu disciplina normal de backups (PBS, vzdump, snapshots ZFS).",
"<strong>Actualizaciones de contenedores / VMs.</strong> Solo se actualiza el host; los guests se quedan en paz.",
"<strong>Instalación específica de firmware.</strong> Esta herramienta no sirve para flashear BIOS ni firmware de dispositivos. Los paquetes de firmware o microcódigo de CPU ya instalados pueden recibir actualizaciones mediante apt."
]
},
"troubleshooting": {
"heading": "Solución de problemas",
"items": [
{
"title": "apt update falla con 401 Unauthorized",
"body": "El repositorio Enterprise está habilitado y el host no tiene suscripción activa. El worker ofrece el cambio a sin suscripción antes de <code>apt-get update</code>; si se rechazó, ejecuta de nuevo la actualización y acéptalo, o deshabilita la fuente Enterprise en <em>Nodo → Actualizaciones → Repositorios</em> y habilita la de sin suscripción."
},
{
"title": "dist-upgrade se queda colgado en \"Configuring grub-pc\"",
"body": "Si aparece una pregunta interactiva de GRUB, solicita los dispositivos donde instalar el cargador de arranque. La opción <code>--force-confold</code> se aplica a decisiones sobre archivos de configuración, no a esta selección de dispositivos. Usa <kbd>Tab</kbd> + <kbd>Space</kbd> para seleccionar los discos de arranque adecuados y después OK. Puedes configurar esta selección de antemano con <code>dpkg-reconfigure grub-pc</code>."
},
{
"title": "El kernel se actualizó pero los nuevos módulos faltan para un driver fuera del árbol",
"body": "Para los controladores gestionados (<code>nvidia_driver</code> y <code>coral_driver</code>), la función ejecuta <code>dkms autoinstall -k &lt;newkver&gt;</code> y puede volver a ejecutar sus instaladores con <code>--auto-reinstall</code>. Comprueba el resultado con <code>dkms status</code>. El comando autoinstall también puede recompilar otros módulos DKMS registrados; la ejecución alternativa de instaladores se limita a las entradas gestionadas de <code>components_status.json</code>. Revisa cualquier módulo de terceros que siga faltando y recompílalo con <code>dkms autoinstall</code> si hace falta."
},
{
"title": "No apareció la pregunta de reinicio, pero creo que se instaló un kernel nuevo",
"body": "Las señales son alternativas: <code>/var/run/reboot-required</code> o una diferencia entre el kernel en ejecución y el Proxmox más reciente instalado. El script principal no analiza entradas linux-image del registro de apt. Comprueba la versión en ejecución con <code>uname -r</code> y los paquetes de kernel instalados con <code>dpkg-query</code>. Si hace falta reiniciar, prográmalo o ejecuta <code>shutdown -r now</code> cuando estés listo."
}
]
},
"files": {
"heading": "Archivos implicados",
"code": "scripts/utilities/proxmox_update.sh # this script (wrapper)\nscripts/global/update-pve-safe.sh # single safe worker (PVE 8 + PVE 9)\nscripts/global/repository-functions.sh # ensure_repositories\nscripts/global/repository_policy.py # reads and switches repositories through the Proxmox API\nscripts/global/utils-install-functions.sh # pmx_rebuild_dkms_after_kernel\n/usr/local/share/proxmenux/components_status.json # ProxMenux-managed DKMS driver registry\n/etc/apt/sources.list.d/proxmox.sources # no-subscription source, written by Proxmox when the switch is accepted\n/var/run/reboot-required # read to decide on reboot prompt\n# Reboot fallback when needrestart isn't installed:\n# dpkg-query -W 'proxmox-kernel-*-pve-signed' 'pve-kernel-*-pve' vs. uname -r"
},
"related": {
"heading": "Relacionado",
"items": [
{
"href": "/docs/utils/upgrade-pve8-pve9",
"label": "Actualizar PVE 8 a PVE 9",
"tail": " — para el salto de versión mayor (herramienta distinta, modelo de seguridad distinto)."
},
{
"href": "/docs/utils/system-utils",
"label": "Instalador de utilidades del sistema",
"tail": " — para instalar herramientas CLI útiles durante las actualizaciones (htop / btop / ncdu)."
},
{
"href": "/docs/utils",
"label": "Resumen de utilidades",
"tail": " — volver al resumen de la sección."
}
]
}
}