mirror of
https://github.com/MacRimi/ProxMenux.git
synced 2026-10-08 14:36:38 +00:00
This commit is contained in:
@@ -6999,7 +6999,7 @@
|
||||
"unconfirmedBody": "Výsledok zálohovania nie je potvrdený.",
|
||||
"warningTitle": "{hostname}: Zálohovanie dokončené s upozorneniami",
|
||||
"warningBody": "Zálohovanie bolo dokončené s upozorneniami.",
|
||||
"diagnosticsOmitted": "Ďalšie diagnostické riadky alebo text vynechaný: {count}.Pôvodná správa sa zachovala."
|
||||
"diagnosticsOmitted": "Ďalšie diagnostické riadky alebo text vynechaný: {count}. Pôvodná správa sa zachovala."
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+3
-3
@@ -4939,8 +4939,8 @@
|
||||
"Repository helper unavailable. NVIDIA installation stopped.": "Repository-Helfer nicht verfügbar. Die Installation von NVIDIA wurde gestoppt.",
|
||||
"Repository policy returned an unexpected result.": "Die Repository-Richtlinie hat ein unerwartetes Ergebnis zurückgegeben.",
|
||||
"Repository ready.": "Repository bereit.",
|
||||
"Repository sources changed, but APT package-list refresh failed. Operation stopped; sources were not rolled back. Inspect Node > Updates > Repositories and retry apt-get update before continuing.": "Repository-Quellen geändert, aber die Aktualisierung der APT-Paketliste ist fehlgeschlagen. Betrieb gestoppt;Quellen wurden nicht zurückgesetzt. Überprüfen Sie Knoten > Updates > Repositorys und wiederholen Sie apt-get update, bevor Sie fortfahren.",
|
||||
"Repository switch declined; no APT source changed.": "Repository-Wechsel abgelehnt;Keine APT-Quelle geändert.",
|
||||
"Repository sources changed, but APT package-list refresh failed. Operation stopped; sources were not rolled back. Inspect Node > Updates > Repositories and retry apt-get update before continuing.": "Die Repository-Quellen wurden geändert, aber die Aktualisierung der APT-Paketliste ist fehlgeschlagen. Vorgang gestoppt; die Quellen wurden nicht zurückgesetzt. Überprüfen Sie Knoten > Updates > Repositorys und wiederholen Sie apt-get update, bevor Sie fortfahren.",
|
||||
"Repository switch declined; no APT source changed.": "Repository-Wechsel abgelehnt; es wurde keine APT-Quelle geändert.",
|
||||
"Repository:": "Repository:",
|
||||
"Request a staging certificate for testing: true or false": "Beantragen Sie ein Staging-Zertifikat für die Prüfung: true oder false",
|
||||
"Require reboot": "Neustart erforderlich",
|
||||
@@ -6683,7 +6683,7 @@
|
||||
"Unsupported mount type:": "Typ der nicht unterstützten Halterung:",
|
||||
"Unsupported native device type:": "Nicht unterstützter nativer Gerätetyp:",
|
||||
"Unsupported operation": "Nicht unterstützte operation",
|
||||
"Unsupported or unknown Proxmox version; no repository changed.": "Nicht unterstützte oder unbekannte Proxmox-Version;Es wurde kein Repository geändert.",
|
||||
"Unsupported or unknown Proxmox version; no repository changed.": "Nicht unterstützte oder unbekannte Proxmox-Version; es wurde kein Repository geändert.",
|
||||
"Unsupported output format:": "Nicht unterstütztes Ausgabeformat:",
|
||||
"Unsupported owner strategy:": "Nicht unterstützte Eigentümerstrategie:",
|
||||
"Unsupported post-start configuration:": "Nicht unterstützte Konfiguration nach dem Start:",
|
||||
|
||||
+13
-13
@@ -160,7 +160,7 @@
|
||||
"APT language configuration updated": "Configuración del idioma APT actualizada",
|
||||
"APT language downloads restored": "Descargas del idioma APT restauradas",
|
||||
"APT package lists updated": "Listas de paquetes APT actualizadas",
|
||||
"APT update failed. Check repository access; NVIDIA installation stopped.": "Error en la actualización de APT.Verificar el acceso al repositorio;La instalación de NVIDIA se detuvo.",
|
||||
"APT update failed. Check repository access; NVIDIA installation stopped.": "La actualización de APT ha fallado. Verifica el acceso a los repositorios; la instalación de NVIDIA se ha detenido.",
|
||||
"Aborted": "Abortado",
|
||||
"About to restore": "A punto de restaurar",
|
||||
"Absolute directory path to use as backup target:": "Ruta absoluta del directorio para usar como destino de la copia de seguridad:",
|
||||
@@ -3955,7 +3955,7 @@
|
||||
"No accessible shares found.": "No se encontraron recursos compartidos accesibles.",
|
||||
"No active exports or showmount not available": "No hay exportaciones activas o showmount no disponible",
|
||||
"No active session": "Ninguna sesión activa",
|
||||
"No active subscription and no usable PVE repository. Noninteractive mode cannot change APT sources; configure them in Node > Updates > Repositories.": "Sin suscripción activa ni repositorio PVE utilizable. El modo no interactivo no puede cambiar las fuentes APT;configúrelos en Nodo > Actualizaciones > Repositorios.",
|
||||
"No active subscription and no usable PVE repository. Noninteractive mode cannot change APT sources; configure them in Node > Updates > Repositories.": "No hay suscripción activa ni un repositorio de PVE utilizable. El modo no interactivo no puede cambiar las fuentes de APT; configúralas en Nodo > Actualizaciones > Repositorios.",
|
||||
"No additional GPU can be added.": "No se puede agregar ninguna GPU adicional.",
|
||||
"No additional device needs to be added.": "No es necesario agregar ningún dispositivo adicional.",
|
||||
"No applications match": "Ninguna aplicación coincide",
|
||||
@@ -4638,7 +4638,7 @@
|
||||
"Proxmox iSCSI Storage Status:": "Estado de almacenamiento Proxmox iSCSI:",
|
||||
"Proxmox jail configured": "Cárcel de Proxmox configurada",
|
||||
"Proxmox local storages:": "Almacenamientos locales de Proxmox:",
|
||||
"Proxmox repository": "repositorio Proxmox",
|
||||
"Proxmox repository": "Repositorio de Proxmox",
|
||||
"Proxmox repository OK (candidate is 9.x)": "Repositorio de Proxmox OK (el candidato es 9.x)",
|
||||
"Proxmox repository configuration completed": "Configuración del repositorio Proxmox completada",
|
||||
"Proxmox repository fixed (no-subscription, candidate is 9.x)": "Repositorio de Proxmox arreglado (sin suscripción, el candidato es 9.x)",
|
||||
@@ -4940,13 +4940,13 @@
|
||||
"Replace with your actual path from step 5": "Reemplace con su ruta real del paso 5",
|
||||
"Replacing gzip with pigz wrapper...": "Reemplazo de gzip con envoltorio pigz...",
|
||||
"Repositories switched to no-subscription": "Los repositorios cambiaron a sin suscripción",
|
||||
"Repository check failed. NVIDIA installation stopped.": "Error en la comprobación del repositorio. La instalación de NVIDIA se detuvo.",
|
||||
"Repository check failed. Update stopped.": "Error en la comprobación del repositorio. La actualización se detuvo.",
|
||||
"Repository helper unavailable. NVIDIA installation stopped.": "el asistente del repositorio no está disponible. La instalación de NVIDIA se detuvo.",
|
||||
"Repository policy returned an unexpected result.": "La política del repositorio arrojó un resultado inesperado.",
|
||||
"Repository check failed. NVIDIA installation stopped.": "La comprobación de los repositorios ha fallado. La instalación de NVIDIA se ha detenido.",
|
||||
"Repository check failed. Update stopped.": "La comprobación de los repositorios ha fallado. La actualización se ha detenido.",
|
||||
"Repository helper unavailable. NVIDIA installation stopped.": "El asistente de repositorios no está disponible. La instalación de NVIDIA se ha detenido.",
|
||||
"Repository policy returned an unexpected result.": "La política de repositorios ha devuelto un resultado inesperado.",
|
||||
"Repository ready.": "Repositorio listo.",
|
||||
"Repository sources changed, but APT package-list refresh failed. Operation stopped; sources were not rolled back. Inspect Node > Updates > Repositories and retry apt-get update before continuing.": "Las fuentes del repositorio cambiaron, pero falló la actualización de la lista de paquetes APT.Operación detenida;las fuentes no fueron revertidas. Inspeccione Nodo > Actualizaciones > Repositorios y vuelva a intentar apt-get update antes de continuar.",
|
||||
"Repository switch declined; no APT source changed.": "Se rechazó el cambio de repositorio;no se modificó ninguna fuente APT.",
|
||||
"Repository sources changed, but APT package-list refresh failed. Operation stopped; sources were not rolled back. Inspect Node > Updates > Repositories and retry apt-get update before continuing.": "Las fuentes de los repositorios han cambiado, pero la actualización de la lista de paquetes de APT ha fallado. La operación se ha detenido; las fuentes no se han revertido. Revisa Nodo > Actualizaciones > Repositorios y vuelve a ejecutar apt-get update antes de continuar.",
|
||||
"Repository switch declined; no APT source changed.": "Cambio de repositorio rechazado; no se ha modificado ninguna fuente de APT.",
|
||||
"Repository:": "Repositorio:",
|
||||
"Request a staging certificate for testing: true or false": "Solicitar un certificado de estadificación para pruebas: verdaderas o falsas",
|
||||
"Require reboot": "Requerir reinicio",
|
||||
@@ -4955,7 +4955,7 @@
|
||||
"Required install helpers not available.": "Los ayudantes de instalación necesarios no están disponibles.",
|
||||
"Required new path cancelled": "Nueva ruta necesaria cancelada",
|
||||
"Required persistent paths cannot be removed": "Las rutas persistentes necesarias no se pueden eliminar",
|
||||
"Required update helpers unavailable. Update stopped.": "Los asistentes de actualización necesarios no están disponibles. La actualización se detuvo.",
|
||||
"Required update helpers unavailable. Update stopped.": "Los asistentes de actualización necesarios no están disponibles. La actualización se ha detenido.",
|
||||
"Requires acl package. Skip if setfacl is not available.": "Requiere paquete acl. Omita si setfacl no está disponible.",
|
||||
"Requires authentication": "Requiere autenticación",
|
||||
"Reserving a private network...": "Reservando una red privada...",
|
||||
@@ -6405,7 +6405,7 @@
|
||||
"This erases existing metadata.": "Esto borra los metadatos existentes.",
|
||||
"This explicitly marks the container as privileged": "Esto marca explícitamente el contenedor como privilegiado.",
|
||||
"This guarantees that device nodes are available before applying LXC GPU config.": "Esto garantiza que los nodos del dispositivo estén disponibles antes de aplicar la configuración de GPU LXC.",
|
||||
"This host has no active subscription, switch to the no-subscription repository? The inaccessible Enterprise PVE source will be disabled. Enterprise Ceph sources, if present, will be disabled without choosing a replacement Ceph channel; configure Ceph separately if needed.": "Este host no tiene suscripción activa, ¿cambiar al repositorio sin suscripción? La fuente Enterprise PVE inaccesible se desactivará. Las fuentes de Enterprise Ceph, si están presentes, se desactivarán sin elegir un canal Ceph de reemplazo;configure Ceph por separado si es necesario.",
|
||||
"This host has no active subscription, switch to the no-subscription repository? The inaccessible Enterprise PVE source will be disabled. Enterprise Ceph sources, if present, will be disabled without choosing a replacement Ceph channel; configure Ceph separately if needed.": "Este host no tiene una suscripción activa, ¿cambiar al repositorio sin suscripción? La fuente Enterprise de PVE, que no es accesible, se desactivará. Las fuentes Enterprise de Ceph, si existen, se desactivarán sin elegir un canal de Ceph que las sustituya; configura Ceph por separado si lo necesitas.",
|
||||
"This image cannot be installed as it is described:": "Esta imagen no se puede instalar como se describe:",
|
||||
"This image requires the host module": "Esta imagen requiere el módulo host",
|
||||
"This import rejects these paths without checking whether they are files or directories.": "Esta importación rechaza estas rutas sin comprobar si son archivos o directorios.",
|
||||
@@ -6690,7 +6690,7 @@
|
||||
"Unsupported mount type:": "Tipo de montaje sin soporte:",
|
||||
"Unsupported native device type:": "Tipo de dispositivo nativo sin soporte:",
|
||||
"Unsupported operation": "operación sin soporte",
|
||||
"Unsupported or unknown Proxmox version; no repository changed.": "Versión Proxmox no compatible o desconocida;no se modificó ningún repositorio.",
|
||||
"Unsupported or unknown Proxmox version; no repository changed.": "Versión de Proxmox no compatible o desconocida; no se ha modificado ningún repositorio.",
|
||||
"Unsupported output format:": "Formato de salida no admitido:",
|
||||
"Unsupported owner strategy:": "estrategia de propietario no admitida:",
|
||||
"Unsupported post-start configuration:": "Configuración sin soporte post-start:",
|
||||
@@ -7283,7 +7283,7 @@
|
||||
"go2rtc WebUI": "go2rtc WebUI",
|
||||
"google/gasket-driver cloned (fallback — will apply local patches).": "google/gasket-driver clonado (alternativa; se aplicarán parches locales).",
|
||||
"gpg not found; trying apt-key fallback": "gpg no encontrado; probando el respaldo de clave apta",
|
||||
"gzip could not be verified, leaving it unchanged": "no se pudo verificar gzip, dejándolo sin cambios",
|
||||
"gzip could not be verified, leaving it unchanged": "No se ha podido verificar gzip; se deja sin cambios",
|
||||
"gzip replaced with pigz wrapper successfully": "gzip reemplazado con el contenedor pigz exitosamente",
|
||||
"has": "tiene",
|
||||
"has a different MAC than the backup — update any DHCP static reservation": "tiene una MAC diferente a la de la copia de seguridad: actualice cualquier reserva estática de DHCP",
|
||||
|
||||
+9
-9
@@ -160,7 +160,7 @@
|
||||
"APT language configuration updated": "Configuration du langage APT mise à jour",
|
||||
"APT language downloads restored": "Téléchargements de langues APT restaurés",
|
||||
"APT package lists updated": "Listes de packages APT mises à jour",
|
||||
"APT update failed. Check repository access; NVIDIA installation stopped.": "La mise à jour APT a échoué. Vérifiez l'accès au référentiel ;L'installation de NVIDIA s'est arrêtée.",
|
||||
"APT update failed. Check repository access; NVIDIA installation stopped.": "La mise à jour APT a échoué. Vérifiez l'accès au référentiel ; l'installation de NVIDIA s'est arrêtée.",
|
||||
"Aborted": "Avorté",
|
||||
"About to restore": "Sur le point de restaurer",
|
||||
"Absolute directory path to use as backup target:": "Chemin du répertoire absolu à utiliser comme cible de sauvegarde :",
|
||||
@@ -3950,7 +3950,7 @@
|
||||
"No accessible shares found.": "Aucun partage accessible trouvé.",
|
||||
"No active exports or showmount not available": "Aucune exportation active ou showmount non disponible",
|
||||
"No active session": "Aucune session active",
|
||||
"No active subscription and no usable PVE repository. Noninteractive mode cannot change APT sources; configure them in Node > Updates > Repositories.": "Aucun abonnement actif et aucun référentiel PVE utilisable. Le mode non interactif ne peut pas modifier les sources APT ;configurez-les dans Node > Updates > Repositories.",
|
||||
"No active subscription and no usable PVE repository. Noninteractive mode cannot change APT sources; configure them in Node > Updates > Repositories.": "Aucun abonnement actif et aucun référentiel PVE utilisable. Le mode non interactif ne peut pas modifier les sources APT ; configurez-les dans Nœud > Mises à jour > Dépôts.",
|
||||
"No additional GPU can be added.": "Aucun GPU supplémentaire ne peut être ajouté.",
|
||||
"No additional device needs to be added.": "Aucun appareil supplémentaire ne doit être ajouté.",
|
||||
"No applications match": "Aucune demande ne correspond",
|
||||
@@ -4632,7 +4632,7 @@
|
||||
"Proxmox iSCSI Storage Status:": "État du stockage Proxmox iSCSI :",
|
||||
"Proxmox jail configured": "Prison Proxmox configurée",
|
||||
"Proxmox local storages:": "Stockages locaux Proxmox :",
|
||||
"Proxmox repository": "référentiel Proxmox",
|
||||
"Proxmox repository": "Référentiel Proxmox",
|
||||
"Proxmox repository OK (candidate is 9.x)": "Dépôt Proxmox OK (le candidat est 9.x)",
|
||||
"Proxmox repository configuration completed": "Configuration du référentiel Proxmox terminée",
|
||||
"Proxmox repository fixed (no-subscription, candidate is 9.x)": "Dépôt Proxmox corrigé (sans abonnement, le candidat est 9.x)",
|
||||
@@ -4939,8 +4939,8 @@
|
||||
"Repository helper unavailable. NVIDIA installation stopped.": "Assistant du référentiel indisponible. L'installation de NVIDIA s'est arrêtée.",
|
||||
"Repository policy returned an unexpected result.": "La stratégie du référentiel a renvoyé un résultat inattendu.",
|
||||
"Repository ready.": "Référentiel prêt.",
|
||||
"Repository sources changed, but APT package-list refresh failed. Operation stopped; sources were not rolled back. Inspect Node > Updates > Repositories and retry apt-get update before continuing.": "les sources du référentiel ont été modifiées, mais l'actualisation de la liste des packages APT a échoué. Opération arrêtée ;les sources n’ont pas été annulées. Inspectez Noeud > Mises à jour > Référentiels et réessayez apt-get update avant de continuer.",
|
||||
"Repository switch declined; no APT source changed.": "le changement de référentiel a été refusé ;aucune source APT n'a été modifiée.",
|
||||
"Repository sources changed, but APT package-list refresh failed. Operation stopped; sources were not rolled back. Inspect Node > Updates > Repositories and retry apt-get update before continuing.": "Les sources du référentiel ont été modifiées, mais l'actualisation de la liste des paquets APT a échoué. Opération arrêtée ; les sources n'ont pas été restaurées. Vérifiez Nœud > Mises à jour > Dépôts et relancez apt-get update avant de continuer.",
|
||||
"Repository switch declined; no APT source changed.": "Le changement de référentiel a été refusé ; aucune source APT n'a été modifiée.",
|
||||
"Repository:": "Dépôt:",
|
||||
"Request a staging certificate for testing: true or false": "Demander un certificat de mise à l'essai : vrai ou faux",
|
||||
"Require reboot": "Nécessite un redémarrage",
|
||||
@@ -4949,7 +4949,7 @@
|
||||
"Required install helpers not available.": "Les aides à l'installation requises ne sont pas disponibles.",
|
||||
"Required new path cancelled": "Required nouveau chemin annulé",
|
||||
"Required persistent paths cannot be removed": "Les chemins persistants required ne peuvent pas être enlevés",
|
||||
"Required update helpers unavailable. Update stopped.": "les aides à la mise à jour requises ne sont pas disponibles. La mise à jour s'est arrêtée.",
|
||||
"Required update helpers unavailable. Update stopped.": "Les aides à la mise à jour requises ne sont pas disponibles. La mise à jour s'est arrêtée.",
|
||||
"Requires acl package. Skip if setfacl is not available.": "Nécessite le package acl. Ignorer si setfacl n'est pas disponible.",
|
||||
"Requires authentication": "Nécessite une authentification",
|
||||
"Reserving a private network...": "Réserver un réseau privé...",
|
||||
@@ -6397,7 +6397,7 @@
|
||||
"This erases existing metadata.": "Cela efface les métadonnées existantes.",
|
||||
"This explicitly marks the container as privileged": "Cela marque explicitement le conteneur comme privilégié",
|
||||
"This guarantees that device nodes are available before applying LXC GPU config.": "Cela garantit que les nœuds de périphérique sont disponibles avant d'appliquer la configuration GPU LXC.",
|
||||
"This host has no active subscription, switch to the no-subscription repository? The inaccessible Enterprise PVE source will be disabled. Enterprise Ceph sources, if present, will be disabled without choosing a replacement Ceph channel; configure Ceph separately if needed.": "Cet hébergeur n'a pas d'abonnement actif, passer au référentiel sans abonnement ?La source Enterprise PVE inaccessible sera désactivée. Les sources Enterprise Ceph, si elles sont présentes, seront désactivées sans choisir un canal Ceph de remplacement ;configurez Ceph séparément si nécessaire.",
|
||||
"This host has no active subscription, switch to the no-subscription repository? The inaccessible Enterprise PVE source will be disabled. Enterprise Ceph sources, if present, will be disabled without choosing a replacement Ceph channel; configure Ceph separately if needed.": "Cet hôte n'a pas d'abonnement actif, passer au référentiel sans abonnement ? La source PVE Enterprise, inaccessible, sera désactivée. Les sources Ceph Enterprise, si elles sont présentes, seront désactivées sans choisir de canal Ceph de remplacement ; configurez Ceph séparément si nécessaire.",
|
||||
"This image cannot be installed as it is described:": "Cette image ne peut pas être installée comme elle est décrite :",
|
||||
"This image requires the host module": "Cette image requirese le module hôte",
|
||||
"This import rejects these paths without checking whether they are files or directories.": "Cette importation rejette ces chemins sans vérifier s'il s'agit de fichiers ou de répertoires.",
|
||||
@@ -6682,7 +6682,7 @@
|
||||
"Unsupported mount type:": "Type de montage non pris en charge:",
|
||||
"Unsupported native device type:": "Type de périphérique natif non pris en charge:",
|
||||
"Unsupported operation": "operation non prise en charge",
|
||||
"Unsupported or unknown Proxmox version; no repository changed.": "version Proxmox non prise en charge ou inconnue ;aucun référentiel n'a été modifié.",
|
||||
"Unsupported or unknown Proxmox version; no repository changed.": "Version Proxmox non prise en charge ou inconnue ; aucun référentiel n'a été modifié.",
|
||||
"Unsupported output format:": "Format de sortie non pris en charge :",
|
||||
"Unsupported owner strategy:": "Stratégie de propriétaire non prise en charge :",
|
||||
"Unsupported post-start configuration:": "Configuration après le démarrage non prise en charge:",
|
||||
@@ -7272,7 +7272,7 @@
|
||||
"go2rtc WebUI": "go2rtc WebUI",
|
||||
"google/gasket-driver cloned (fallback — will apply local patches).": "google/gasket-driver cloné (repli – appliquera les correctifs locaux).",
|
||||
"gpg not found; trying apt-key fallback": "gpg introuvable ; essayer la solution de secours apt-key",
|
||||
"gzip could not be verified, leaving it unchanged": "gzip n'a pas pu être vérifié, le laissant inchangé",
|
||||
"gzip could not be verified, leaving it unchanged": "gzip n'a pas pu être vérifié ; il est laissé inchangé",
|
||||
"gzip replaced with pigz wrapper successfully": "gzip remplacé avec succès par le wrapper pigz",
|
||||
"has": "a",
|
||||
"has a different MAC than the backup — update any DHCP static reservation": "a un MAC différent de celui de la sauvegarde – mettre à jour toute réservation statique DHCP",
|
||||
|
||||
+12
-12
@@ -160,7 +160,7 @@
|
||||
"APT language configuration updated": "Configurazione della lingua APT aggiornata",
|
||||
"APT language downloads restored": "Download della lingua APT ripristinati",
|
||||
"APT package lists updated": "Elenchi dei pacchetti APT aggiornati",
|
||||
"APT update failed. Check repository access; NVIDIA installation stopped.": "aggiornamento APT non riuscito. Controllare l'accesso al repository;L'installazione di NVIDIA è stata interrotta.",
|
||||
"APT update failed. Check repository access; NVIDIA installation stopped.": "Aggiornamento APT non riuscito. Controllare l'accesso al repository; l'installazione di NVIDIA è stata interrotta.",
|
||||
"Aborted": "Abortito",
|
||||
"About to restore": "In procinto di ripristinare",
|
||||
"Absolute directory path to use as backup target:": "percorso assoluto della directory da utilizzare come destinazione del backup:",
|
||||
@@ -3950,7 +3950,7 @@
|
||||
"No accessible shares found.": "Nessuna condivisione accessibile trovata.",
|
||||
"No active exports or showmount not available": "Nessuna esportazione attiva o showmount non disponibile",
|
||||
"No active session": "Nessuna sessione attiva",
|
||||
"No active subscription and no usable PVE repository. Noninteractive mode cannot change APT sources; configure them in Node > Updates > Repositories.": "nessun abbonamento attivo e nessun repository PVE utilizzabile. La modalità non interattiva non può modificare le origini APT;configurarli in Nodo > Aggiornamenti > Repository.",
|
||||
"No active subscription and no usable PVE repository. Noninteractive mode cannot change APT sources; configure them in Node > Updates > Repositories.": "Nessun abbonamento attivo e nessun repository PVE utilizzabile. La modalità non interattiva non può modificare le origini APT; configurarle in Nodo > Aggiornamenti > Repository.",
|
||||
"No additional GPU can be added.": "Non è possibile aggiungere alcuna GPU aggiuntiva.",
|
||||
"No additional device needs to be added.": "Non è necessario aggiungere alcun dispositivo aggiuntivo.",
|
||||
"No applications match": "Nessuna corrispondenza delle applicazioni",
|
||||
@@ -4632,7 +4632,7 @@
|
||||
"Proxmox iSCSI Storage Status:": "Stato di archiviazione iSCSI Proxmox:",
|
||||
"Proxmox jail configured": "Jail Proxmox configurato",
|
||||
"Proxmox local storages:": "Archivi locali Proxmox:",
|
||||
"Proxmox repository": "repository Proxmox",
|
||||
"Proxmox repository": "Repository Proxmox",
|
||||
"Proxmox repository OK (candidate is 9.x)": "Repository Proxmox OK (il candidato è 9.x)",
|
||||
"Proxmox repository configuration completed": "Configurazione del repository Proxmox completata",
|
||||
"Proxmox repository fixed (no-subscription, candidate is 9.x)": "Repository Proxmox corretto (nessuna sottoscrizione, il candidato è 9.x)",
|
||||
@@ -4934,13 +4934,13 @@
|
||||
"Replace with your actual path from step 5": "Sostituisci con il percorso effettivo del passaggio 5",
|
||||
"Replacing gzip with pigz wrapper...": "Sostituzione di gzip con wrapper pigz...",
|
||||
"Repositories switched to no-subscription": "I repository sono passati alla modalità senza abbonamento",
|
||||
"Repository check failed. NVIDIA installation stopped.": "controllo del repository non riuscito. L'installazione di NVIDIA è stata interrotta.",
|
||||
"Repository check failed. Update stopped.": "controllo del repository non riuscito. Aggiornamento interrotto.",
|
||||
"Repository check failed. NVIDIA installation stopped.": "Controllo del repository non riuscito. L'installazione di NVIDIA è stata interrotta.",
|
||||
"Repository check failed. Update stopped.": "Controllo del repository non riuscito. Aggiornamento interrotto.",
|
||||
"Repository helper unavailable. NVIDIA installation stopped.": "Helper del repository non disponibile. L'installazione di NVIDIA è stata interrotta.",
|
||||
"Repository policy returned an unexpected result.": "la policy del repository ha restituito un risultato imprevisto.",
|
||||
"Repository policy returned an unexpected result.": "La policy del repository ha restituito un risultato imprevisto.",
|
||||
"Repository ready.": "Archivio pronto.",
|
||||
"Repository sources changed, but APT package-list refresh failed. Operation stopped; sources were not rolled back. Inspect Node > Updates > Repositories and retry apt-get update before continuing.": "Messaggio tecnico per Proxmox e IT.Traduzione: le origini del repository sono cambiate, ma l'aggiornamento dell'elenco dei pacchetti APT non è riuscito. Operazione interrotta;le fonti non sono state ripristinate. Ispeziona Nodo > Aggiornamenti > Repository e riprova apt-get update prima di continuare.",
|
||||
"Repository switch declined; no APT source changed.": "cambio di repository rifiutato;nessuna sorgente APT è cambiata.",
|
||||
"Repository sources changed, but APT package-list refresh failed. Operation stopped; sources were not rolled back. Inspect Node > Updates > Repositories and retry apt-get update before continuing.": "Le origini del repository sono cambiate, ma l'aggiornamento dell'elenco dei pacchetti APT non è riuscito. Operazione interrotta; le origini non sono state ripristinate. Controlla Nodo > Aggiornamenti > Repository e riprova apt-get update prima di continuare.",
|
||||
"Repository switch declined; no APT source changed.": "Cambio di repository rifiutato; nessuna origine APT è stata modificata.",
|
||||
"Repository:": "Deposito:",
|
||||
"Request a staging certificate for testing: true or false": "Richiedi un certificato di allestimento per il test: vero o falso",
|
||||
"Require reboot": "Richiede il riavvio",
|
||||
@@ -4949,7 +4949,7 @@
|
||||
"Required install helpers not available.": "Assistenti di installazione richiesti non disponibili.",
|
||||
"Required new path cancelled": "Required nuovo percorso cancellato",
|
||||
"Required persistent paths cannot be removed": "I percorsi persistenti Required non possono essere rimossi",
|
||||
"Required update helpers unavailable. Update stopped.": "gli aiutanti di aggiornamento richiesti non sono disponibili. Aggiornamento interrotto.",
|
||||
"Required update helpers unavailable. Update stopped.": "Gli aiutanti di aggiornamento richiesti non sono disponibili. Aggiornamento interrotto.",
|
||||
"Requires acl package. Skip if setfacl is not available.": "Richiede il pacchetto ACL. Salta se setfacl non è disponibile.",
|
||||
"Requires authentication": "Richiede l'autenticazione",
|
||||
"Reserving a private network...": "Conservare una rete privata...",
|
||||
@@ -6398,7 +6398,7 @@
|
||||
"This erases existing metadata.": "Ciò cancella i metadati esistenti.",
|
||||
"This explicitly marks the container as privileged": "Ciò contrassegna esplicitamente il contenitore come privilegiato",
|
||||
"This guarantees that device nodes are available before applying LXC GPU config.": "Ciò garantisce che i nodi del dispositivo siano disponibili prima di applicare la configurazione della GPU LXC.",
|
||||
"This host has no active subscription, switch to the no-subscription repository? The inaccessible Enterprise PVE source will be disabled. Enterprise Ceph sources, if present, will be disabled without choosing a replacement Ceph channel; configure Ceph separately if needed.": "questo host non ha un abbonamento attivo, passare al repository senza abbonamento? L'origine PVE aziendale inaccessibile verrà disabilitata. Le origini Ceph Enterprise, se presenti, verranno disabilitate senza scegliere un canale Ceph sostitutivo;configurare Ceph separatamente se necessario.",
|
||||
"This host has no active subscription, switch to the no-subscription repository? The inaccessible Enterprise PVE source will be disabled. Enterprise Ceph sources, if present, will be disabled without choosing a replacement Ceph channel; configure Ceph separately if needed.": "Questo host non ha un abbonamento attivo, passare al repository senza abbonamento? L'origine PVE Enterprise, non accessibile, verrà disabilitata. Le origini Ceph Enterprise, se presenti, verranno disabilitate senza scegliere un canale Ceph sostitutivo; configurare Ceph separatamente se necessario.",
|
||||
"This image cannot be installed as it is described:": "Questa immagine non può essere installata come descritto:",
|
||||
"This image requires the host module": "Questa immagine requires il modulo host",
|
||||
"This import rejects these paths without checking whether they are files or directories.": "Questa importazione rifiuta questi percorsi senza verificare se sono file o directory.",
|
||||
@@ -6683,7 +6683,7 @@
|
||||
"Unsupported mount type:": "Tipo di montaggio non supportato:",
|
||||
"Unsupported native device type:": "Tipo di dispositivo nativo non supportato:",
|
||||
"Unsupported operation": "operation non supportato",
|
||||
"Unsupported or unknown Proxmox version; no repository changed.": "versione Proxmox non supportata o sconosciuta;nessun repository è cambiato.",
|
||||
"Unsupported or unknown Proxmox version; no repository changed.": "Versione Proxmox non supportata o sconosciuta; nessun repository è cambiato.",
|
||||
"Unsupported output format:": "Formato di output non supportato:",
|
||||
"Unsupported owner strategy:": "Strategia del proprietario non supportata:",
|
||||
"Unsupported post-start configuration:": "Configurazione post-start non supportata:",
|
||||
@@ -7273,7 +7273,7 @@
|
||||
"go2rtc WebUI": "go2rtc WebUI",
|
||||
"google/gasket-driver cloned (fallback — will apply local patches).": "google/gasket-driver clonato (fallback: applicherà le patch locali).",
|
||||
"gpg not found; trying apt-key fallback": "gpg non trovato; provando il fallback con la chiave apt",
|
||||
"gzip could not be verified, leaving it unchanged": "non è stato possibile verificare gzip, lasciandolo invariato",
|
||||
"gzip could not be verified, leaving it unchanged": "Non è stato possibile verificare gzip; viene lasciato invariato",
|
||||
"gzip replaced with pigz wrapper successfully": "gzip sostituito con successo con il wrapper pigz",
|
||||
"has": "ha",
|
||||
"has a different MAC than the backup — update any DHCP static reservation": "ha un MAC diverso da quello del backup: aggiorna qualsiasi prenotazione statica DHCP",
|
||||
|
||||
+11
-11
@@ -160,7 +160,7 @@
|
||||
"APT language configuration updated": "Configuração de idioma APT atualizada",
|
||||
"APT language downloads restored": "Downloads de idiomas APT restaurados",
|
||||
"APT package lists updated": "Listas de pacotes APT atualizadas",
|
||||
"APT update failed. Check repository access; NVIDIA installation stopped.": "falha na atualização do APT.Verifique o acesso ao repositório;A instalação do NVIDIA foi interrompida.",
|
||||
"APT update failed. Check repository access; NVIDIA installation stopped.": "Falha na atualização do APT. Verifique o acesso ao repositório; a instalação do NVIDIA foi interrompida.",
|
||||
"Aborted": "Abortado",
|
||||
"About to restore": "Prestes a restaurar",
|
||||
"Absolute directory path to use as backup target:": "caminho absoluto do diretório para usar como destino de backup:",
|
||||
@@ -3950,7 +3950,7 @@
|
||||
"No accessible shares found.": "Nenhum compartilhamento acessível encontrado.",
|
||||
"No active exports or showmount not available": "Nenhuma exportação ativa ou showmount não disponível",
|
||||
"No active session": "Nenhuma sessão ativa",
|
||||
"No active subscription and no usable PVE repository. Noninteractive mode cannot change APT sources; configure them in Node > Updates > Repositories.": "Nenhuma assinatura ativa e nenhum repositório PVE utilizável. O modo não interativo não pode alterar fontes APT;configure-os em Nó > Atualizações > Repositórios.",
|
||||
"No active subscription and no usable PVE repository. Noninteractive mode cannot change APT sources; configure them in Node > Updates > Repositories.": "Nenhuma assinatura ativa e nenhum repositório PVE utilizável. O modo não interativo não pode alterar fontes APT; configure-as em Nó > Atualizações > Repositórios.",
|
||||
"No additional GPU can be added.": "Nenhuma GPU adicional pode ser adicionada.",
|
||||
"No additional device needs to be added.": "Nenhum dispositivo adicional precisa ser adicionado.",
|
||||
"No applications match": "Nenhuma aplicação corresponde",
|
||||
@@ -4632,7 +4632,7 @@
|
||||
"Proxmox iSCSI Storage Status:": "Status de armazenamento iSCSI do Proxmox:",
|
||||
"Proxmox jail configured": "Prisão Proxmox configurada",
|
||||
"Proxmox local storages:": "Armazenamentos locais Proxmox:",
|
||||
"Proxmox repository": "repositório Proxmox",
|
||||
"Proxmox repository": "Repositório Proxmox",
|
||||
"Proxmox repository OK (candidate is 9.x)": "Repositório Proxmox OK (o candidato é 9.x)",
|
||||
"Proxmox repository configuration completed": "Configuração do repositório Proxmox concluída",
|
||||
"Proxmox repository fixed (no-subscription, candidate is 9.x)": "Repositório Proxmox corrigido (sem assinatura, o candidato é 9.x)",
|
||||
@@ -4934,13 +4934,13 @@
|
||||
"Replace with your actual path from step 5": "Substitua pelo caminho real da etapa 5",
|
||||
"Replacing gzip with pigz wrapper...": "Substituindo o gzip pelo wrapper pigz...",
|
||||
"Repositories switched to no-subscription": "Repositórios alterados para sem assinatura",
|
||||
"Repository check failed. NVIDIA installation stopped.": "falha na verificação do repositório. A instalação do NVIDIA foi interrompida.",
|
||||
"Repository check failed. Update stopped.": "falha na verificação do repositório. Atualização interrompida.",
|
||||
"Repository check failed. NVIDIA installation stopped.": "Falha na verificação do repositório. A instalação do NVIDIA foi interrompida.",
|
||||
"Repository check failed. Update stopped.": "Falha na verificação do repositório. Atualização interrompida.",
|
||||
"Repository helper unavailable. NVIDIA installation stopped.": "Auxiliar de repositório indisponível. A instalação do NVIDIA foi interrompida.",
|
||||
"Repository policy returned an unexpected result.": "a política do repositório retornou um resultado inesperado.",
|
||||
"Repository policy returned an unexpected result.": "A política do repositório retornou um resultado inesperado.",
|
||||
"Repository ready.": "Repositório pronto.",
|
||||
"Repository sources changed, but APT package-list refresh failed. Operation stopped; sources were not rolled back. Inspect Node > Updates > Repositories and retry apt-get update before continuing.": "as fontes do repositório foram alteradas, mas a atualização da lista de pacotes APT falhou. Operação interrompida;fontes não foram revertidas. Inspecione Node > Updates > Repositories e tente apt-get update novamente antes de continuar.",
|
||||
"Repository switch declined; no APT source changed.": "troca de repositório recusada;nenhuma fonte APT foi alterada.",
|
||||
"Repository sources changed, but APT package-list refresh failed. Operation stopped; sources were not rolled back. Inspect Node > Updates > Repositories and retry apt-get update before continuing.": "As fontes do repositório foram alteradas, mas a atualização da lista de pacotes APT falhou. Operação interrompida; as fontes não foram revertidas. Verifique Nó > Atualizações > Repositórios e tente apt-get update novamente antes de continuar.",
|
||||
"Repository switch declined; no APT source changed.": "Troca de repositório recusada; nenhuma fonte APT foi alterada.",
|
||||
"Repository:": "Repositório:",
|
||||
"Request a staging certificate for testing: true or false": "Solicitar um certificado de estadiamento para testes: verdadeiro ou falso",
|
||||
"Require reboot": "Exigir reinicialização",
|
||||
@@ -6398,7 +6398,7 @@
|
||||
"This erases existing metadata.": "Isso apaga os metadados existentes.",
|
||||
"This explicitly marks the container as privileged": "Isso marca explicitamente o contêiner como privilegiado",
|
||||
"This guarantees that device nodes are available before applying LXC GPU config.": "Isso garante que os nós do dispositivo estejam disponíveis antes de aplicar a configuração da GPU LXC.",
|
||||
"This host has no active subscription, switch to the no-subscription repository? The inaccessible Enterprise PVE source will be disabled. Enterprise Ceph sources, if present, will be disabled without choosing a replacement Ceph channel; configure Ceph separately if needed.": "Este host não tem assinatura ativa, mudar para o repositório sem assinatura? A fonte Enterprise PVE inacessível será desativada. As fontes Enterprise Ceph, se presentes, serão desativadas sem a escolha de um canal substituto do Ceph;configure o Ceph separadamente, se necessário.",
|
||||
"This host has no active subscription, switch to the no-subscription repository? The inaccessible Enterprise PVE source will be disabled. Enterprise Ceph sources, if present, will be disabled without choosing a replacement Ceph channel; configure Ceph separately if needed.": "Este host não tem assinatura ativa, mudar para o repositório sem assinatura? A fonte Enterprise PVE inacessível será desativada. As fontes Enterprise Ceph, se presentes, serão desativadas sem a escolha de um canal substituto do Ceph; configure o Ceph separadamente, se necessário.",
|
||||
"This image cannot be installed as it is described:": "Esta imagem não pode ser instalada como está descrita:",
|
||||
"This image requires the host module": "Esta imagem requires o módulo da máquina",
|
||||
"This import rejects these paths without checking whether they are files or directories.": "Esta importação rejeita estes caminhos sem verificar se são arquivos ou diretórios.",
|
||||
@@ -6683,7 +6683,7 @@
|
||||
"Unsupported mount type:": "Tipo de montagem não suportado:",
|
||||
"Unsupported native device type:": "Tipo de dispositivo nativo não suportado:",
|
||||
"Unsupported operation": "operation não suportado",
|
||||
"Unsupported or unknown Proxmox version; no repository changed.": "Versão Proxmox não suportada ou desconhecida;nenhum repositório foi alterado.",
|
||||
"Unsupported or unknown Proxmox version; no repository changed.": "Versão Proxmox não suportada ou desconhecida; nenhum repositório foi alterado.",
|
||||
"Unsupported output format:": "Formato de saída não suportado:",
|
||||
"Unsupported owner strategy:": "Estratégia do proprietário não suportada:",
|
||||
"Unsupported post-start configuration:": "Configuração pós- arranque não suportada:",
|
||||
@@ -7273,7 +7273,7 @@
|
||||
"go2rtc WebUI": "go2rtc WebUI",
|
||||
"google/gasket-driver cloned (fallback — will apply local patches).": "google/gasket-driver clonado (substituto – aplicará patches locais).",
|
||||
"gpg not found; trying apt-key fallback": "gpg não encontrado; tentando substituto do apt-key",
|
||||
"gzip could not be verified, leaving it unchanged": "o gzip não pôde ser verificado, deixando-o inalterado",
|
||||
"gzip could not be verified, leaving it unchanged": "Não foi possível verificar o gzip; foi deixado inalterado",
|
||||
"gzip replaced with pigz wrapper successfully": "gzip substituído pelo wrapper pigz com sucesso",
|
||||
"has": "tem",
|
||||
"has a different MAC than the backup — update any DHCP static reservation": "tem um MAC diferente do backup – atualize qualquer reserva estática de DHCP",
|
||||
|
||||
+6
-6
@@ -160,7 +160,7 @@
|
||||
"APT language configuration updated": "Nastavenie jazykov pre APT bolo aktualizované",
|
||||
"APT language downloads restored": "Sťahovanie jazykov cez APT bolo obnovené",
|
||||
"APT package lists updated": "Zoznamy APT balíkov aktualizované",
|
||||
"APT update failed. Check repository access; NVIDIA installation stopped.": "Aktualizácia APT zlyhala. Skontrolujte prístup k úložisku;Inštalácia NVIDIA sa zastavila.",
|
||||
"APT update failed. Check repository access; NVIDIA installation stopped.": "Aktualizácia APT zlyhala. Skontrolujte prístup k úložisku; inštalácia NVIDIA sa zastavila.",
|
||||
"Aborted": "Zrušené",
|
||||
"About to restore": "Chystá sa obnova",
|
||||
"Absolute directory path to use as backup target:": "Absolútna cesta k priečinku, ktorý sa má použiť ako cieľ záloh:",
|
||||
@@ -3950,7 +3950,7 @@
|
||||
"No accessible shares found.": "Nenašli sa dostupné zdieľania.",
|
||||
"No active exports or showmount not available": "Nie sú aktívne exporty alebo príkaz showmount nie je dostupný",
|
||||
"No active session": "Žiadna aktívna relácia",
|
||||
"No active subscription and no usable PVE repository. Noninteractive mode cannot change APT sources; configure them in Node > Updates > Repositories.": "Žiadne aktívne predplatné a žiadne použiteľné úložisko PVE.Neinteraktívny režim nemôže zmeniť zdroje APT;nakonfigurujte ich v časti Uzol > Aktualizácie > Úložiská.",
|
||||
"No active subscription and no usable PVE repository. Noninteractive mode cannot change APT sources; configure them in Node > Updates > Repositories.": "Žiadne aktívne predplatné a žiadne použiteľné úložisko PVE. Neinteraktívny režim nemôže zmeniť zdroje APT; nakonfigurujte ich v časti Uzol > Aktualizácie > Úložiská.",
|
||||
"No additional GPU can be added.": "Nie je možné pridať ďalšiu GPU.",
|
||||
"No additional device needs to be added.": "Netreba pridávať žiadne ďalšie zariadenie.",
|
||||
"No applications match": "Žiadna zhoda aplikácií",
|
||||
@@ -4939,8 +4939,8 @@
|
||||
"Repository helper unavailable. NVIDIA installation stopped.": "Pomocník úložiska nie je k dispozícii. Inštalácia NVIDIA sa zastavila.",
|
||||
"Repository policy returned an unexpected result.": "Politika úložiska vrátila neočakávaný výsledok.",
|
||||
"Repository ready.": "Repozitár je pripravený.",
|
||||
"Repository sources changed, but APT package-list refresh failed. Operation stopped; sources were not rolled back. Inspect Node > Updates > Repositories and retry apt-get update before continuing.": "Zdroje úložiska sa zmenili, ale obnovenie zoznamu balíkov APT zlyhalo. Prevádzka zastavená;zdroje neboli vrátené späť. Pred pokračovaním skontrolujte Node > Updates > Repository a zopakujte apt-get update.",
|
||||
"Repository switch declined; no APT source changed.": "Prepnutie úložiska bolo odmietnuté;žiadny zdroj APT sa nezmenil.",
|
||||
"Repository sources changed, but APT package-list refresh failed. Operation stopped; sources were not rolled back. Inspect Node > Updates > Repositories and retry apt-get update before continuing.": "Zdroje úložiska sa zmenili, ale obnovenie zoznamu balíkov APT zlyhalo. Prevádzka zastavená; zdroje neboli vrátené späť. Pred pokračovaním skontrolujte Node > Updates > Repository a zopakujte apt-get update.",
|
||||
"Repository switch declined; no APT source changed.": "Prepnutie úložiska bolo odmietnuté; žiadny zdroj APT sa nezmenil.",
|
||||
"Repository:": "Repozitár:",
|
||||
"Request a staging certificate for testing: true or false": "Vyžiada si osvedčenie o intenzite na testovanie: pravdivé alebo nepravdivé",
|
||||
"Require reboot": "Vyžaduje reštart",
|
||||
@@ -6397,7 +6397,7 @@
|
||||
"This erases existing metadata.": "Týmto sa vymažú existujúce metadáta.",
|
||||
"This explicitly marks the container as privileged": "Týmto sa kontajner výslovne označí ako privilegovaný",
|
||||
"This guarantees that device nodes are available before applying LXC GPU config.": "Tým sa zabezpečí, že device nodes budú dostupné ešte pred použitím GPU nastavenia pre LXC.",
|
||||
"This host has no active subscription, switch to the no-subscription repository? The inaccessible Enterprise PVE source will be disabled. Enterprise Ceph sources, if present, will be disabled without choosing a replacement Ceph channel; configure Ceph separately if needed.": "Tento hostiteľ nemá žiadne aktívne predplatné, prepnúť na úložisko bez predplatného? Neprístupný zdroj Enterprise PVE bude zakázaný. Enterprise Ceph zdroje, ak sú prítomné, budú deaktivované bez výberu náhradného Ceph kanála;v prípade potreby nakonfigurujte Ceph samostatne.",
|
||||
"This host has no active subscription, switch to the no-subscription repository? The inaccessible Enterprise PVE source will be disabled. Enterprise Ceph sources, if present, will be disabled without choosing a replacement Ceph channel; configure Ceph separately if needed.": "Tento hostiteľ nemá žiadne aktívne predplatné, prepnúť na úložisko bez predplatného? Neprístupný zdroj Enterprise PVE bude zakázaný. Enterprise Ceph zdroje, ak sú prítomné, budú deaktivované bez výberu náhradného Ceph kanála; v prípade potreby nakonfigurujte Ceph samostatne.",
|
||||
"This image cannot be installed as it is described:": "Tento obrázok nie je možné nainštalovať, ako je popísané:",
|
||||
"This image requires the host module": "Tento obrázok requires hostiteľský modul",
|
||||
"This import rejects these paths without checking whether they are files or directories.": "Tento import odmieta tieto cesty bez kontroly, či ide o súbory alebo adresáre.",
|
||||
@@ -6682,7 +6682,7 @@
|
||||
"Unsupported mount type:": "Nepodporovaný typ pripojenia:",
|
||||
"Unsupported native device type:": "Nepodporovaný natívne typ zariadenia:",
|
||||
"Unsupported operation": "Nepodporovaná operation",
|
||||
"Unsupported or unknown Proxmox version; no repository changed.": "Nepodporovaná alebo neznáma verzia Proxmox;žiadne úložisko sa nezmenilo.",
|
||||
"Unsupported or unknown Proxmox version; no repository changed.": "Nepodporovaná alebo neznáma verzia Proxmox; žiadne úložisko sa nezmenilo.",
|
||||
"Unsupported output format:": "Nepodporovaný výstupný formát:",
|
||||
"Unsupported owner strategy:": "Nepodporovaná stratégia vlastníka:",
|
||||
"Unsupported post-start configuration:": "Nepodporovaná konfigurácia po štarte:",
|
||||
|
||||
+12
-12
@@ -160,7 +160,7 @@
|
||||
"APT language configuration updated": "APT-språkkonfigurationen uppdaterad",
|
||||
"APT language downloads restored": "APT-språknedladdningar återställda",
|
||||
"APT package lists updated": "APT-paketlistor uppdaterade",
|
||||
"APT update failed. Check repository access; NVIDIA installation stopped.": "APT-uppdatering misslyckades. Kontrollera tillgången till förvaret;NVIDIA-installationen stoppades.",
|
||||
"APT update failed. Check repository access; NVIDIA installation stopped.": "APT-uppdateringen misslyckades. Kontrollera åtkomsten till arkiven; NVIDIA-installationen stoppades.",
|
||||
"Aborted": "Avbruten",
|
||||
"About to restore": "På väg att återställa",
|
||||
"Absolute directory path to use as backup target:": "Absolut katalogsökväg att använda som mål för säkerhetskopiering:",
|
||||
@@ -3950,7 +3950,7 @@
|
||||
"No accessible shares found.": "Inga tillgängliga delningar hittades.",
|
||||
"No active exports or showmount not available": "Inga aktiva exporter eller showmount är inte tillgängligt",
|
||||
"No active session": "Ingen aktiv session",
|
||||
"No active subscription and no usable PVE repository. Noninteractive mode cannot change APT sources; configure them in Node > Updates > Repositories.": "Inget aktivt abonnemang och inget användbart PVE-förråd. Icke-interaktivt läge kan inte ändra APT-källor;konfigurera dem i Nod > Uppdateringar > Lagrar.",
|
||||
"No active subscription and no usable PVE repository. Noninteractive mode cannot change APT sources; configure them in Node > Updates > Repositories.": "Ingen aktiv prenumeration och inget användbart PVE-arkiv. Icke-interaktivt läge kan inte ändra APT-källor; konfigurera dem i Node > Updates > Repositories.",
|
||||
"No additional GPU can be added.": "Ingen ytterligare GPU kan läggas till.",
|
||||
"No additional device needs to be added.": "Ingen ytterligare enhet behöver läggas till.",
|
||||
"No applications match": "Inga applikationer matchar",
|
||||
@@ -4632,7 +4632,7 @@
|
||||
"Proxmox iSCSI Storage Status:": "Proxmox iSCSI-lagringsstatus:",
|
||||
"Proxmox jail configured": "Proxmox jail konfigurerad",
|
||||
"Proxmox local storages:": "Proxmox lokala lager:",
|
||||
"Proxmox repository": "Proxmox repository",
|
||||
"Proxmox repository": "Proxmox-arkiv",
|
||||
"Proxmox repository OK (candidate is 9.x)": "Proxmox arkiv OK (kandidat är 9.x)",
|
||||
"Proxmox repository configuration completed": "Konfigurationen av Proxmox-arkivet har slutförts",
|
||||
"Proxmox repository fixed (no-subscription, candidate is 9.x)": "Proxmox arkiv fast (ingen prenumeration, kandidat är 9.x)",
|
||||
@@ -4934,13 +4934,13 @@
|
||||
"Replace with your actual path from step 5": "Ersätt med din faktiska väg från steg 5",
|
||||
"Replacing gzip with pigz wrapper...": "Ersätter gzip med pigz-omslag...",
|
||||
"Repositories switched to no-subscription": "Lagren bytte till ingen prenumeration",
|
||||
"Repository check failed. NVIDIA installation stopped.": "Förvarskontrollen misslyckades. NVIDIA-installationen stoppades.",
|
||||
"Repository check failed. Update stopped.": "Förvarskontrollen misslyckades. Uppdateringen stoppades.",
|
||||
"Repository helper unavailable. NVIDIA installation stopped.": "Repository helper inte tillgänglig. NVIDIA-installationen stoppades.",
|
||||
"Repository policy returned an unexpected result.": "Lagringspolicyn gav ett oväntat resultat.",
|
||||
"Repository check failed. NVIDIA installation stopped.": "Arkivkontrollen misslyckades. NVIDIA-installationen stoppades.",
|
||||
"Repository check failed. Update stopped.": "Arkivkontrollen misslyckades. Uppdateringen stoppades.",
|
||||
"Repository helper unavailable. NVIDIA installation stopped.": "Arkivhjälparen är inte tillgänglig. NVIDIA-installationen stoppades.",
|
||||
"Repository policy returned an unexpected result.": "Arkivpolicyn gav ett oväntat resultat.",
|
||||
"Repository ready.": "Förvaret klart.",
|
||||
"Repository sources changed, but APT package-list refresh failed. Operation stopped; sources were not rolled back. Inspect Node > Updates > Repositories and retry apt-get update before continuing.": "Lagringskällorna har ändrats, men APT-paketlistans uppdatering misslyckades. Drift stoppad;källor rullades inte tillbaka. Inspektera Node > Uppdateringar > Repositories och försök apt-get update igen innan du fortsätter.",
|
||||
"Repository switch declined; no APT source changed.": "Förvarsbyte avvisades;ingen APT-källa har ändrats.",
|
||||
"Repository sources changed, but APT package-list refresh failed. Operation stopped; sources were not rolled back. Inspect Node > Updates > Repositories and retry apt-get update before continuing.": "Arkivkällorna har ändrats, men uppdateringen av APT-paketlistan misslyckades. Åtgärden stoppades; källorna återställdes inte. Kontrollera Node > Updates > Repositories och försök apt-get update igen innan du fortsätter.",
|
||||
"Repository switch declined; no APT source changed.": "Arkivbytet avvisades; ingen APT-källa har ändrats.",
|
||||
"Repository:": "Förvar:",
|
||||
"Request a staging certificate for testing: true or false": "Begär ett staging-certifikat för testning: sant eller falskt",
|
||||
"Require reboot": "Kräv omstart",
|
||||
@@ -6398,7 +6398,7 @@
|
||||
"This erases existing metadata.": "Detta raderar befintlig metadata.",
|
||||
"This explicitly marks the container as privileged": "Detta markerar uttryckligen behållaren som privilegierad",
|
||||
"This guarantees that device nodes are available before applying LXC GPU config.": "Detta garanterar att enhetsnoder är tillgängliga innan du använder LXC GPU-konfiguration.",
|
||||
"This host has no active subscription, switch to the no-subscription repository? The inaccessible Enterprise PVE source will be disabled. Enterprise Ceph sources, if present, will be disabled without choosing a replacement Ceph channel; configure Ceph separately if needed.": "Denna värd har ingen aktiv prenumeration, byta till arkivet utan prenumeration? Den otillgängliga Enterprise PVE-källan kommer att inaktiveras. Enterprise Ceph-källor, om sådana finns, kommer att inaktiveras utan att välja en ersättnings Ceph-kanal;konfigurera Ceph separat om det behövs.",
|
||||
"This host has no active subscription, switch to the no-subscription repository? The inaccessible Enterprise PVE source will be disabled. Enterprise Ceph sources, if present, will be disabled without choosing a replacement Ceph channel; configure Ceph separately if needed.": "Den här värden har ingen aktiv prenumeration, byta till arkivet utan prenumeration? Den otillgängliga Enterprise PVE-källan inaktiveras. Enterprise Ceph-källor, om sådana finns, inaktiveras utan att en ersättande Ceph-kanal väljs; konfigurera Ceph separat om det behövs.",
|
||||
"This image cannot be installed as it is described:": "Denna bild kan inte installeras eftersom den beskrivs:",
|
||||
"This image requires the host module": "Denna bild requires värdmodulen",
|
||||
"This import rejects these paths without checking whether they are files or directories.": "Den här importen avvisar sökvägarna utan att kontrollera om de är filer eller kataloger.",
|
||||
@@ -6683,7 +6683,7 @@
|
||||
"Unsupported mount type:": "Unsupported Mount Typ:",
|
||||
"Unsupported native device type:": "Inbyggd enhetstyp som inte stöds:",
|
||||
"Unsupported operation": "Unsupported operation",
|
||||
"Unsupported or unknown Proxmox version; no repository changed.": "Ostödd eller okänd version av Proxmox;inget arkiv har ändrats.",
|
||||
"Unsupported or unknown Proxmox version; no repository changed.": "Ostödd eller okänd version av Proxmox; inget arkiv har ändrats.",
|
||||
"Unsupported output format:": "Utdataformat som inte stöds:",
|
||||
"Unsupported owner strategy:": "Ägarstrategi som inte stöds:",
|
||||
"Unsupported post-start configuration:": "Unsupported post-start konfiguration:",
|
||||
@@ -7273,7 +7273,7 @@
|
||||
"go2rtc WebUI": "go2rtc WebUI",
|
||||
"google/gasket-driver cloned (fallback — will apply local patches).": "google/gasket-driver cloned (reserv — kommer att tillämpa lokala patchar).",
|
||||
"gpg not found; trying apt-key fallback": "gpg hittades inte; försöker apt-key fallback",
|
||||
"gzip could not be verified, leaving it unchanged": "gzip kunde inte verifieras, vilket lämnar det oförändrat",
|
||||
"gzip could not be verified, leaving it unchanged": "gzip kunde inte verifieras; det lämnas oförändrat",
|
||||
"gzip replaced with pigz wrapper successfully": "gzip ersattes med pigz wrapper framgångsrikt",
|
||||
"has": "har",
|
||||
"has a different MAC than the backup — update any DHCP static reservation": "har en annan MAC än säkerhetskopian — uppdatera alla statiska DHCP-reservationer",
|
||||
|
||||
@@ -33,6 +33,14 @@ ensure_repositories() {
|
||||
decision=$(repository_policy apply "$suite") || return 1
|
||||
[[ "$decision" == changed || "$decision" == preserve ]] || return 1
|
||||
if [[ "$decision" == changed ]]; then
|
||||
# The switch goes through the Proxmox API; leave it in the changes journal.
|
||||
if declare -F pmx_record_execution >/dev/null; then
|
||||
local journal_function="${PMX_JOURNAL_FUNCTION:-}" journal_version="${PMX_JOURNAL_VERSION:-}"
|
||||
pmx_journal_context "ensure_repositories" "" "${PMX_JOURNAL_SOURCE:-}"
|
||||
pmx_record_execution "Switch to the PVE no-subscription repository" \
|
||||
"pvesh set /nodes/localhost/apt/repositories --handle no-subscription"
|
||||
PMX_JOURNAL_FUNCTION="$journal_function" PMX_JOURNAL_VERSION="$journal_version"
|
||||
fi
|
||||
# Direct callers may install immediately; refresh their package indexes
|
||||
# before returning. Preserve paths must not trigger an extra refresh.
|
||||
if apt-get update; then
|
||||
|
||||
@@ -1647,7 +1647,7 @@ ensure_gzip_binary() {
|
||||
}
|
||||
|
||||
configure_pigz() {
|
||||
local FUNC_VERSION="1.0"
|
||||
local FUNC_VERSION="1.1"
|
||||
pmx_journal_context "configure_pigz" "$FUNC_VERSION"
|
||||
# description: Replace gzip with pigz (parallel implementation) for faster vzdump backup compression.
|
||||
msg_info2 "$(translate "Configuring pigz as a faster replacement for gzip...")"
|
||||
|
||||
@@ -250,7 +250,7 @@ export default async function NvidiaHostPage({
|
||||
|
||||
<Steps.Step title={t("walkthrough.version.title")}>
|
||||
<p className="mb-3 text-gray-800">{t.rich("walkthrough.version.body1", { strong, em, code })}</p>
|
||||
<p className="mb-3 text-gray-800">{t("walkthrough.version.body2")}</p>
|
||||
<p className="mb-3 text-gray-800">{t.rich("walkthrough.version.body2", { em })}</p>
|
||||
|
||||
<Callout variant="tip" title={t("walkthrough.version.whyTitle")}>
|
||||
{t("walkthrough.version.whyBody")}
|
||||
|
||||
@@ -49,6 +49,7 @@ export async function generateMetadata({
|
||||
type SourceRow = { collector: string; watches: string; events: string }
|
||||
type DispatchRow = { stage: string; what: string; tunable: string }
|
||||
type CatalogueRow = { group: string; events: string }
|
||||
type BackupResultRow = { icon: string; result: string; when: string }
|
||||
type ApiRow = { endpoint: string; method: string; use: string }
|
||||
type WhereNextItem = { label: string; href: string; tail?: string; tailRich?: string }
|
||||
|
||||
@@ -88,7 +89,7 @@ export default async function NotificationsPage({
|
||||
securityItems: string[]
|
||||
actionsItems: string[]
|
||||
}
|
||||
catalogue: { rows: CatalogueRow[] }
|
||||
catalogue: { rows: CatalogueRow[]; backupResults: { rows: BackupResultRow[]; items: string[] } }
|
||||
api: { rows: ApiRow[] }
|
||||
whereNext: { items: WhereNextItem[] }
|
||||
} } }
|
||||
@@ -117,6 +118,8 @@ export default async function NotificationsPage({
|
||||
const pveSecurity = n.pveWebhook.securityItems
|
||||
const pveActions = n.pveWebhook.actionsItems
|
||||
const catalogueRows = n.catalogue.rows
|
||||
const backupResultRows = n.catalogue.backupResults.rows
|
||||
const backupResultItems = n.catalogue.backupResults.items
|
||||
const apiRows = n.api.rows
|
||||
const whereNextItems = n.whereNext.items
|
||||
|
||||
@@ -722,6 +725,37 @@ running on node pve-01
|
||||
{t.rich("catalogue.burstNote", { code })}
|
||||
</p>
|
||||
|
||||
<h3 id="backup-results" className="text-lg font-semibold mt-6 mb-2 text-gray-900">{t("catalogue.backupResults.heading")}</h3>
|
||||
|
||||
<p className="mb-4 text-gray-800 leading-relaxed">{t.rich("catalogue.backupResults.intro", { em })}</p>
|
||||
|
||||
<div className="overflow-x-auto mb-6">
|
||||
<table className="w-full text-sm border border-gray-200 rounded-md">
|
||||
<thead className="bg-gray-50 text-gray-900">
|
||||
<tr>
|
||||
<th className="text-left px-3 py-2 border-b border-gray-200">{t("catalogue.backupResults.headerIcon")}</th>
|
||||
<th className="text-left px-3 py-2 border-b border-gray-200">{t("catalogue.backupResults.headerResult")}</th>
|
||||
<th className="text-left px-3 py-2 border-b border-gray-200">{t("catalogue.backupResults.headerWhen")}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody className="text-gray-800">
|
||||
{backupResultRows.map((row, idx) => (
|
||||
<tr key={row.icon} className={idx < backupResultRows.length - 1 ? "border-b border-gray-100" : ""}>
|
||||
<td className="px-3 py-2 align-top whitespace-nowrap">{row.icon}</td>
|
||||
<td className="px-3 py-2 align-top whitespace-nowrap"><strong>{row.result}</strong></td>
|
||||
<td className="px-3 py-2 align-top">{row.when}</td>
|
||||
</tr>
|
||||
))}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<ul className="list-disc pl-6 mb-6 text-gray-800 leading-relaxed space-y-1">
|
||||
{backupResultItems.map((_, idx) => (
|
||||
<li key={idx}>{t.rich(`catalogue.backupResults.items.${idx}`, { strong })}</li>
|
||||
))}
|
||||
</ul>
|
||||
|
||||
<h2 className="text-2xl font-semibold mt-10 mb-4 text-gray-900">{t("history.heading")}</h2>
|
||||
|
||||
<p className="mb-4 text-gray-800 leading-relaxed">
|
||||
|
||||
@@ -85,14 +85,17 @@ apt-get -y install pigz
|
||||
cat > /bin/pigzwrapper <<'EOF'
|
||||
#!/bin/sh
|
||||
PATH=/bin:$PATH
|
||||
GZIP="-1"
|
||||
export GZIP="-1"
|
||||
exec /usr/bin/pigz "$@"
|
||||
EOF
|
||||
chmod +x /bin/pigzwrapper
|
||||
|
||||
# Only replaces gzip if not already replaced (idempotent)
|
||||
[ ! -f /bin/gzip.original ] && mv /bin/gzip /bin/gzip.original \\
|
||||
&& cp /bin/pigzwrapper /bin/gzip && chmod +x /bin/gzip`}
|
||||
# gzip is diverted: the real binary is kept as gzip.distrib, package updates
|
||||
# land there, and the wrapper takes the place of gzip.
|
||||
# Path on Proxmox VE 9; on Proxmox VE 8 it is /bin/gzip.
|
||||
cp -p /usr/bin/gzip /usr/bin/gzip.distrib
|
||||
dpkg-divert --local --no-rename --divert /usr/bin/gzip.distrib --add /usr/bin/gzip
|
||||
cat /bin/pigzwrapper > /usr/bin/gzip`}
|
||||
className="my-4"
|
||||
/>
|
||||
|
||||
@@ -106,8 +109,9 @@ chmod +x /bin/pigzwrapper
|
||||
|
||||
<CopyableCode
|
||||
code={`# Manual rollback of pigz
|
||||
mv /bin/gzip.original /bin/gzip # restore original binary
|
||||
rm /bin/pigzwrapper
|
||||
cat /usr/bin/gzip.distrib > /usr/bin/gzip # restore the real binary
|
||||
dpkg-divert --local --no-rename --remove /usr/bin/gzip
|
||||
rm /usr/bin/gzip.distrib /bin/pigzwrapper
|
||||
sed -i 's/^pigz: 1/#pigz: 1/' /etc/vzdump.conf
|
||||
# Optional: remove the package
|
||||
apt purge pigz`}
|
||||
|
||||
@@ -74,7 +74,7 @@ export default async function SystemUpdatePage({
|
||||
<div>
|
||||
<DocHeader
|
||||
title={t("header.title")}
|
||||
description={t("header.description")}
|
||||
description={t.rich("header.description", { code, em })}
|
||||
section={t("header.section")}
|
||||
estimatedMinutes={5}
|
||||
scriptPath="utilities/proxmox_update.sh"
|
||||
@@ -175,14 +175,14 @@ export default async function SystemUpdatePage({
|
||||
|
||||
<h2 className="text-2xl font-semibold mt-10 mb-4 text-gray-900">{t("noSub.heading")}</h2>
|
||||
<p className="mb-6 text-gray-800 leading-relaxed">
|
||||
{t.rich("noSub.intro", { code, strong })}
|
||||
{t.rich("noSub.intro", { code, strong, em })}
|
||||
</p>
|
||||
<ol className="list-decimal pl-6 mb-6 text-gray-800 leading-relaxed space-y-1">
|
||||
<ul className="list-disc pl-6 mb-6 text-gray-800 leading-relaxed space-y-1">
|
||||
{noSubItems.map((_, idx) => (
|
||||
<li key={idx}>{t.rich(`noSub.items.${idx}`, { code, strong })}</li>
|
||||
<li key={idx}>{t.rich(`noSub.items.${idx}`, { code, strong, em })}</li>
|
||||
))}
|
||||
</ol>
|
||||
<p className="mb-6 text-gray-800 leading-relaxed">{t("noSub.outro")}</p>
|
||||
</ul>
|
||||
<p className="mb-6 text-gray-800 leading-relaxed">{t.rich("noSub.outro", { code, em })}</p>
|
||||
|
||||
<h2 className="text-2xl font-semibold mt-10 mb-4 text-gray-900">{t("cluster.heading")}</h2>
|
||||
<Callout variant="warning" title={t("cluster.calloutTitle")}>
|
||||
@@ -200,7 +200,7 @@ export default async function SystemUpdatePage({
|
||||
|
||||
{troubleItems.map((_, idx) => (
|
||||
<Callout key={idx} variant="troubleshoot" title={t(`troubleshooting.items.${idx}.title`)}>
|
||||
{t.rich(`troubleshooting.items.${idx}.body`, { code, kbd })}
|
||||
{t.rich(`troubleshooting.items.${idx}.body`, { code, kbd, em })}
|
||||
</Callout>
|
||||
))}
|
||||
|
||||
|
||||
@@ -157,7 +157,7 @@ export default async function SystemUtilsPage({
|
||||
<h2 className="text-2xl font-semibold mt-10 mb-4 text-gray-900">{t("troubleshoot.heading")}</h2>
|
||||
|
||||
<Callout variant="troubleshoot" title={t("troubleshoot.reposTitle")}>
|
||||
{t.rich("troubleshoot.reposBody", { code })}
|
||||
{t.rich("troubleshoot.reposBody", { code, em })}
|
||||
</Callout>
|
||||
|
||||
<Callout variant="troubleshoot" title={t("troubleshoot.warningsTitle")}>
|
||||
|
||||
@@ -60,6 +60,7 @@
|
||||
"title": "Prepare the system",
|
||||
"body": "Behind a single confirmation, the script:",
|
||||
"items": [
|
||||
"Checks the repositories of the host before anything is removed or installed: a host with no active subscription and only the Enterprise repository is asked before switching to no-subscription, and the installation stops when the switch is declined.",
|
||||
"Installs <code>pve-headers-$(uname -r)</code> (or <code>proxmox-headers-$(uname -r)</code>), <code>build-essential</code> and <code>dkms</code>.",
|
||||
"Creates the ProxMenux-owned <code>/etc/modprobe.d/proxmenux-nouveau-blacklist.conf</code> with <code>blacklist nouveau</code> and <code>options nouveau modeset=0</code>, records whether it added the companion line to <code>blacklist.conf</code>, and tries to unload the module immediately.",
|
||||
"Writes <code>/etc/modules-load.d/nvidia-vfio.conf</code> with <code>nvidia</code> and <code>nvidia_uvm</code> so the modules load early at boot."
|
||||
|
||||
@@ -400,7 +400,43 @@
|
||||
"events": "<code>gpu_mode_switch</code>, <code>gpu_passthrough_blocked</code>, <code>pci_passthrough_conflict</code>, <code>ai_model_migrated</code>."
|
||||
}
|
||||
],
|
||||
"burstNote": "A handful of <code>burst_*</code> aggregation types (<code>burst_auth_fail</code>, <code>burst_ip_block</code>, <code>burst_disk_io</code>, etc.) exist only in the dispatcher — they replace bursts of individual events with a single summary message and are not exposed as toggles in the UI. They inherit the on/off state of their parent event type."
|
||||
"burstNote": "A handful of <code>burst_*</code> aggregation types (<code>burst_auth_fail</code>, <code>burst_ip_block</code>, <code>burst_disk_io</code>, etc.) exist only in the dispatcher — they replace bursts of individual events with a single summary message and are not exposed as toggles in the UI. They inherit the on/off state of their parent event type.",
|
||||
"backupResults": {
|
||||
"heading": "Backup results",
|
||||
"intro": "A notification about a Proxmox backup job states how the job ended. The result is read from the report Proxmox sends, and it sets the title, the icon shown with <em>Rich messages</em> on, and the status row of the email.",
|
||||
"headerIcon": "Icon",
|
||||
"headerResult": "Result",
|
||||
"headerWhen": "When",
|
||||
"rows": [
|
||||
{
|
||||
"icon": "💾✅",
|
||||
"result": "Backup complete",
|
||||
"when": "Every guest of the job finished and the report carries no warnings."
|
||||
},
|
||||
{
|
||||
"icon": "💾⚠️",
|
||||
"result": "Backup completed with warnings",
|
||||
"when": "Every guest finished and the report carries at least one warning line."
|
||||
},
|
||||
{
|
||||
"icon": "💾❌",
|
||||
"result": "Backup error reported",
|
||||
"when": "A guest failed, or the job stopped with an error."
|
||||
},
|
||||
{
|
||||
"icon": "💾❔",
|
||||
"result": "Backup outcome unconfirmed",
|
||||
"when": "The report is incomplete or does not state a result for every guest."
|
||||
}
|
||||
],
|
||||
"items": [
|
||||
"<strong>The title names what the job was about.</strong> It carries the storage and, for a job with a single guest, its type, name and ID. A failed job names the guest that failed.",
|
||||
"<strong>The body lists each guest</strong> with its own result, size, duration and archive, followed by a line with the totals of the job.",
|
||||
"<strong>Warnings and errors are listed once.</strong> Repeated lines are shown a single time with the main cause first; past eight lines, the rest is counted in a closing line and stays in the Proxmox task log.",
|
||||
"<strong>A job that fails before its first guest</strong> shows the cause Proxmox gave, for example a storage that does not exist.",
|
||||
"<strong>Summaries keep the result.</strong> A backup listed in the Quiet Hours summary or the Daily Digest carries the icon of its own result."
|
||||
]
|
||||
}
|
||||
},
|
||||
"history": {
|
||||
"heading": "History",
|
||||
|
||||
@@ -21,12 +21,13 @@
|
||||
"Sets <code>pigz: 1</code> in <code>/etc/vzdump.conf</code> so Proxmox's backup tool uses pigz natively.",
|
||||
"Installs the <code>pigz</code> apt package if not already present.",
|
||||
"Writes a wrapper script at <code>/bin/pigzwrapper</code> that forwards every argument to <code>/usr/bin/pigz</code>.",
|
||||
"Moves the original <code>/bin/gzip</code> aside to <code>/bin/gzip.original</code> and replaces <code>/bin/gzip</code> with the wrapper. From now on, <em>anything</em> that calls <code>gzip</code> — logrotate, <code>tar czf</code>, scripts, vzdump — uses pigz transparently."
|
||||
"Registers a dpkg diversion for the system's <code>gzip</code> binary (<code>/usr/bin/gzip</code> on Proxmox VE 9, <code>/bin/gzip</code> on Proxmox VE 8): the real binary is kept beside it as <code>gzip.distrib</code> and the wrapper takes its place. From now on, <em>anything</em> that calls <code>gzip</code> — logrotate, <code>tar czf</code>, scripts, vzdump — uses pigz transparently.",
|
||||
"Checks that the file kept as <code>gzip.distrib</code> is a working gzip before the wrapper is put in place, and reinstalls the <code>gzip</code> package first when it is not. A host that still has the earlier <code>/bin/gzip.original</code> swap is moved to the diversion when the option is applied again."
|
||||
],
|
||||
"replacesTitle": "This replaces a system binary",
|
||||
"replacesBody": "Replacing <code>/bin/gzip</code> with a wrapper is unusual. It is safe (the wrapper produces gzip-compatible output), but worth knowing: scripts that hardcode paths, run inside restrictive chroots, or verify binary hashes may behave differently. The original binary is preserved as <code>/bin/gzip.original</code> so you can always swap it back.",
|
||||
"replacesBody": "Putting a wrapper in the place of <code>gzip</code> is unusual. It is safe (the wrapper produces gzip-compatible output), but worth knowing: scripts that hardcode paths, run inside restrictive chroots, or verify binary hashes may behave differently. The real binary is preserved as <code>gzip.distrib</code>, and because the replacement is a dpkg diversion, an update of the <code>gzip</code> package — or the upgrade from Proxmox VE 8 to 9 — updates that file and leaves the wrapper in place.",
|
||||
"revertTitle": "Reversible from the Uninstall menu",
|
||||
"revertBody": "This optimization is tracked. <link>Uninstall Optimizations</link> restores <code>/bin/gzip.original</code> back into place, removes the <code>pigzwrapper</code>, reverts the two lines added to <code>/etc/vzdump.conf</code>, and runs <code>apt purge pigz</code>. Manual equivalent:",
|
||||
"revertBody": "This optimization is tracked. <link>Uninstall Optimizations</link> copies the real binary from <code>gzip.distrib</code> back over the wrapper, removes the diversion and the <code>pigzwrapper</code>, comments out the <code>pigz</code> line in <code>/etc/vzdump.conf</code>, and runs <code>apt purge pigz</code> once gzip is verified to work. Manual equivalent on Proxmox VE 9:",
|
||||
"verifyTitle": "Verification",
|
||||
"verifyBody": "After applying, <code>gzip --version</code> should mention pigz. A quick benchmark also shows the speed difference on a multi-core host:",
|
||||
"whenTitle": "When this matters most",
|
||||
|
||||
@@ -205,7 +205,7 @@
|
||||
},
|
||||
{
|
||||
"tool": "pigz (parallel gzip)",
|
||||
"restores": "Puts /bin/gzip.original back in place, removes the /bin/pigzwrapper, reverts the pigz and bwlimit lines in /etc/vzdump.conf and apt purges pigz."
|
||||
"restores": "Copies the real gzip back from gzip.distrib, removes the dpkg diversion and /bin/pigzwrapper, comments out the pigz line in /etc/vzdump.conf and apt purges pigz once gzip is verified."
|
||||
},
|
||||
{
|
||||
"tool": "High Availability services",
|
||||
|
||||
@@ -78,7 +78,7 @@
|
||||
},
|
||||
{
|
||||
"title": "Proxmox System Update",
|
||||
"description": "Repo hygiene + apt update + apt dist-upgrade with reboot prompt. Detects PVE major version (8 or 9) and routes to the matching worker. Switches to no-subscription, removes conflicting packages, runs autoremove.",
|
||||
"description": "Repository check + apt update + apt dist-upgrade with reboot prompt. Detects the PVE major version (8 or 9), keeps the configured repositories and asks before switching a host without subscription to no-subscription, then runs autoremove.",
|
||||
"href": "/docs/utils/system-update"
|
||||
},
|
||||
{
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
},
|
||||
"header": {
|
||||
"title": "Proxmox System Update",
|
||||
"description": "Wrapper that delegates to a single safe worker (<code>update-pve-safe.sh</code>) which detects the running Proxmox major version by itself. Repositories are cleaned up when they overlap with the base Proxmox / Debian sources, all packages are upgraded, ProxMenux-managed DKMS drivers are rebuilt if a new kernel landed, and the reboot prompt fires only when the kernel actually changed. Also launchable from the <em>Update Now</em> button in the ProxMenux Monitor dashboard header when pending updates are detected.",
|
||||
"description": "Wrapper that delegates to a single safe worker (<code>update-pve-safe.sh</code>) which detects the running Proxmox major version by itself. The configured repositories are read through the Proxmox API and kept as they are; a host with no active subscription whose only Proxmox repository is Enterprise is asked before switching to no-subscription. All packages are upgraded, ProxMenux-managed DKMS drivers are rebuilt if a new kernel landed, and the reboot prompt fires only when the kernel actually changed. Also launchable from the <em>Update Now</em> button in the ProxMenux Monitor dashboard header when pending updates are detected.",
|
||||
"section": "Utilities"
|
||||
},
|
||||
"calloutWhat": {
|
||||
@@ -25,7 +25,7 @@
|
||||
"intro": "This option runs <strong>exactly</strong> the apt command above, wrapped with the repo hygiene, DKMS rebuild for ProxMenux-managed drivers and post-upgrade cleanup the official upgrade guide also recommends. Everything below maps 1:1 to <code>scripts/utilities/proxmox_update.sh</code> and the single safe worker <code>scripts/global/update-pve-safe.sh</code> — nothing implied, every step is in the code:",
|
||||
"items": [
|
||||
"<strong>Detects the PVE major version</strong> from inside the worker (<code>pveversion | grep -oP ''pve-manager/\\K[0-9]+''</code>) and adapts the base Proxmox / Debian repo URLs (bookworm on PVE 8, trixie on PVE 9). There is no fan-out to per-version worker scripts — a single safe worker handles both.",
|
||||
"<strong>Cleans up repositories in a conservative way.</strong> <code>ensure_repositories</code> runs first but only when the base Proxmox / Debian sources are missing — a bare host gets them written, a configured host is a no-op. <code>cleanup_duplicate_repos</code> then removes exact URL + Suite + Component duplicates only against <code>proxmox.sources</code> / <code>debian.sources</code>; user-authored files (enterprise, Ceph, alternative NTP mirrors, custom <code>download.proxmox.com/*</code> entries or hand-written <code>pve-*.list</code>) are left untouched, and every file is backed up before being edited.",
|
||||
"<strong>Keeps the configured repositories.</strong> <code>ensure_repositories</code> reads the repositories through the Proxmox repository API, together with the subscription status. A host with an active subscription, or one that already uses the no-subscription or test repository, is left unchanged. A host with no active subscription whose only Proxmox repository is Enterprise is asked whether to switch to no-subscription; declining stops the update with no source changed.",
|
||||
"<strong>Runs the upgrade non-interactively</strong> with <code>DEBIAN_FRONTEND=noninteractive</code> and <code>--force-confdef --force-confold</code> — if a configuration file you already modified also changed upstream, your version stays in place. No silent overwrites of custom configs.",
|
||||
"<strong>Skips forcing optional utilities.</strong> The safe worker does not push <code>zfsutils-linux</code>, <code>chrony</code>, <code>ifupdown2</code> or similar packages onto the host — a Proxmox install that opted out of any of them keeps its choice. Missing packages are surfaced by the higher-level installer flows, not by the update path.",
|
||||
"<strong>LVM metadata sanity check</strong> against stray PV headers from passthrough disks (warn-only, no automatic fix).",
|
||||
@@ -63,10 +63,9 @@
|
||||
"heading": "What the worker does",
|
||||
"intro": "A single worker (<code>scripts/global/update-pve-safe.sh</code>) handles both PVE 8 and PVE 9. It detects the major version internally and uses the version-appropriate codename (<code>bookworm</code> or <code>trixie</code>) for its base sources. The stages are:",
|
||||
"items": [
|
||||
"<strong>Sanity checks.</strong> Verifies at least ~1 GB free in <code>/var/cache/apt/archives</code> and pings <code>download.proxmox.com</code>. Aborts early with a clear message when either fails, so the run doesn't die in the middle of an apt transaction.",
|
||||
"<strong>Repo bootstrap.</strong> <code>ensure_repositories</code> writes the base Proxmox / Debian sources only when they are missing (a fresh or hand-cleaned host); on a configured host it does nothing.",
|
||||
"<strong>Sanity checks.</strong> Verifies at least ~1 GB free in <code>/var/cache/apt/archives</code>. Aborts early with a clear message when it fails, so the run doesn't die in the middle of an apt transaction.",
|
||||
"<strong>Repository check.</strong> <code>ensure_repositories</code> reads the repositories and the subscription status. On a host with a usable Proxmox repository it changes nothing; on a host with no active subscription and only the Enterprise repository it asks before switching to no-subscription, and stops the update when the answer is no.",
|
||||
"<strong>Apt update with GPG auto-recovery.</strong> On <code>NO_PUBKEY</code> for any repo (yours or a third-party one) the worker imports the missing key and retries automatically before failing.",
|
||||
"<strong>Conservative duplicate cleanup.</strong> <code>cleanup_duplicate_repos</code> only removes exact URL + Suite + Component matches against <code>proxmox.sources</code> / <code>debian.sources</code>. User-authored files — enterprise, Ceph, alternative NTP mirrors, custom <code>download.proxmox.com/*</code> entries, hand-written <code>pve-*.list</code> — are left intact. Every file is backed up before modification.",
|
||||
"<strong>Pending upgrades + security count.</strong> Reports how many packages will change and how many of those come from the security suite, so the confirmation dialog has real numbers to show.",
|
||||
"<strong>Confirmation dialog.</strong> The wrapper asks for an explicit yes before touching apt.",
|
||||
"<strong>apt full-upgrade.</strong> Runs with <code>DEBIAN_FRONTEND=noninteractive</code> and <code>--force-confdef --force-confold</code> so any configuration file you customised keeps its current contents when upstream also changed it. Never overwrites operator-edited configs silently.",
|
||||
@@ -96,14 +95,16 @@
|
||||
"body": "Running on an old kernel after upgrading <code>linux-image-*</code> means you're on a half-upgraded system: userspace is new, kernel is old. Most of the time things work, but ZFS modules, IOMMU groups, KSMBD and any out-of-tree drivers will only match the kernel they were built for — a mismatch produces obscure failures. Reboot at the earliest sensible moment."
|
||||
},
|
||||
"noSub": {
|
||||
"heading": "How the safe worker treats the enterprise repo",
|
||||
"intro": "Proxmox ships hosts with the enterprise repo enabled by default. Without a paid subscription, that repo returns 401 on <code>apt-get update</code>. The safe worker deliberately does <strong>not</strong> touch enterprise or Ceph repositories — a host running with a real subscription must not have its config silently rewritten. What happens instead:",
|
||||
"heading": "How the safe worker treats the Enterprise repository",
|
||||
"intro": "Proxmox ships hosts with the Enterprise repository enabled by default. Without an active subscription, that repository returns 401 on <code>apt-get update</code>. The safe worker changes the repositories only in that case, only after asking, and through the Proxmox repository API — the same one behind <em>Node → Updates → Repositories</em>. What happens in each case:",
|
||||
"items": [
|
||||
"On a <strong>bare host</strong> with no base Proxmox / Debian sources at all, <code>ensure_repositories</code> writes the no-subscription source in the deb822 format (<code>proxmox.sources</code>) with the codename matching the detected major version (<code>bookworm</code> for PVE 8, <code>trixie</code> for PVE 9) and the matching Debian sources.",
|
||||
"On a <strong>configured host</strong>, <code>ensure_repositories</code> is a no-op — whatever the operator chose (no-subscription, enterprise, or a mix) is preserved.",
|
||||
"The enterprise <code>pve-enterprise.sources</code> / <code>ceph.sources</code> files are never modified by the update path. The removal of the enterprise repo when it's unwanted is handled elsewhere in ProxMenux (the Automated post-install script), not here."
|
||||
"With an <strong>active subscription</strong>, the repositories are left unchanged and Enterprise drives the upgrade.",
|
||||
"With the <strong>no-subscription or test repository already enabled</strong>, the repositories are left unchanged, whatever else is configured beside them.",
|
||||
"With <strong>no active subscription and only the Enterprise repository</strong>, a dialog offers the switch. Accepting disables the Enterprise source, enables the no-subscription one and refreshes the package lists; the change is recorded in the <em>Changes</em> view of Audit & Report. Declining stops the update with no source changed.",
|
||||
"<strong>Enterprise Ceph sources</strong>, when present, are disabled in the same switch without choosing another Ceph channel; a host that uses Ceph has its channel configured separately.",
|
||||
"When the run has <strong>no terminal to ask in</strong>, no source is changed and the update stops with a message that points to <em>Node → Updates → Repositories</em>."
|
||||
],
|
||||
"outro": "If you have a paid subscription, keep <code>pve-enterprise.sources</code> enabled and the safe worker will let it drive the upgrade unchanged. If you don't, either run the Automated post-install first (it does the switch and records it) or comment the enterprise source out manually — the update path will not do it for you."
|
||||
"outro": "The Debian sources and every other repository file are never edited by the update path. A source that mixes Enterprise with other components in the same entry is not switched: the update stops and asks for it to be split from the Proxmox repository view."
|
||||
},
|
||||
"cluster": {
|
||||
"heading": "Cluster considerations",
|
||||
@@ -124,7 +125,7 @@
|
||||
"items": [
|
||||
{
|
||||
"title": "apt update fails with 401 Unauthorized",
|
||||
"body": "The enterprise repo is still enabled but you don't have a subscription. The worker should detect and switch automatically; if it didn't, comment the line in <code>/etc/apt/sources.list.d/pve-enterprise.list</code> (or set <code>Enabled: false</code> in the deb822 <code>pve-enterprise.sources</code>) and re-run."
|
||||
"body": "The Enterprise repository is enabled and the host has no active subscription. The worker offers the switch to no-subscription before <code>apt-get update</code>; when it was declined, run the update again and accept it, or disable the Enterprise source in <em>Node → Updates → Repositories</em> and enable the no-subscription one."
|
||||
},
|
||||
{
|
||||
"title": "dist-upgrade hangs at \"Configuring grub-pc\"",
|
||||
@@ -142,7 +143,7 @@
|
||||
},
|
||||
"files": {
|
||||
"heading": "Files involved",
|
||||
"code": "scripts/utilities/proxmox_update.sh # this script (wrapper)\nscripts/global/update-pve-safe.sh # single safe worker (PVE 8 + PVE 9)\nscripts/global/common-functions.sh # cleanup_duplicate_repos used by the worker\nscripts/global/utils-install-functions.sh # ensure_repositories + 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 # deb822 no-subscription source (bare-host bootstrap)\n/etc/apt/sources.list.d/debian.sources # deb822 Debian sources (bare-host bootstrap)\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"
|
||||
"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": "Related",
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
},
|
||||
"info": {
|
||||
"title": "What this does",
|
||||
"body": "Installs CLI tools from a curated list of 26 packages. Every installation goes through the same canonical flow: <code>ensure_repositories</code> sets up Proxmox + Debian repos for the running PVE major version, then <code>install_single_package</code> runs the install and verifies the resulting command is in PATH."
|
||||
"body": "Installs CLI tools from a curated list of 26 packages. Every installation goes through the same canonical flow: <code>ensure_repositories</code> checks that the host has a usable Proxmox repository for the running PVE major version, then <code>install_single_package</code> runs the install and verifies the resulting command is in PATH."
|
||||
},
|
||||
"opening": {
|
||||
"heading": "Opening the installer",
|
||||
@@ -204,7 +204,7 @@
|
||||
"howItWorks": {
|
||||
"heading": "How a single package install works",
|
||||
"items": [
|
||||
"<code>ensure_repositories</code> detects PVE 8 or 9, writes Proxmox no-subscription + Debian sources files if missing, runs <code>apt-get update</code>.",
|
||||
"<code>ensure_repositories</code> detects PVE 8 or 9 and reads the repositories through the Proxmox API. A host with a usable Proxmox repository is left unchanged; a host with no active subscription and only the Enterprise repository is asked before switching to no-subscription, and <code>apt-get update</code> runs after an accepted switch.",
|
||||
"<code>install_single_package \"pkg\" \"verify_cmd\" \"description\"</code> runs <code>apt-get install -y \"$pkg\"</code> with feedback (<code>msg_info</code> / <code>msg_ok</code> / <code>msg_error</code>)."
|
||||
],
|
||||
"verifyIntro": "After install, the verify command is checked with <code>command -v \"$verify_cmd\"</code>. Three outcomes:",
|
||||
@@ -224,7 +224,7 @@
|
||||
"troubleshoot": {
|
||||
"heading": "Troubleshooting",
|
||||
"reposTitle": "\"Failed to configure repositories. Installation aborted.\"",
|
||||
"reposBody": "The host can't reach the Proxmox or Debian repos, or doesn't have the expected base config. From a console: <code>cat /etc/apt/sources.list /etc/apt/sources.list.d/*.sources</code> and <code>apt-get update</code> manually to see the actual error.",
|
||||
"reposBody": "The repository check did not pass: the switch to the no-subscription repository was declined, the subscription status could not be read, or a repository entry needs attention. The message printed above it states the cause. The repositories are listed in <em>Node → Updates → Repositories</em>, and <code>apt-get update</code> from a console shows the error apt reports.",
|
||||
"warningsTitle": "A package is reported \"With warnings\" but the command works after I close the menu",
|
||||
"warningsBody": "Expected. After <code>apt-get install</code>, the new binary is on disk but the current shell's PATH cache (<code>hash -t</code>) doesn't know yet. ProxMenux runs <code>hash -r</code> after each install, but in some shells the refresh only takes effect on the next prompt. Open a new shell and the command will work.",
|
||||
"hangsTitle": "An apt install hangs",
|
||||
@@ -232,7 +232,7 @@
|
||||
},
|
||||
"files": {
|
||||
"heading": "Files involved",
|
||||
"code": "scripts/utilities/system_utils.sh # this script\nscripts/global/utils-install-functions.sh # PROXMENUX_UTILS, ensure_repositories,\n # install_single_package\n/etc/apt/sources.list # may be touched by ensure_repositories\n/etc/apt/sources.list.d/proxmox.sources # created if missing (PVE 9)\n/etc/apt/sources.list.d/debian.sources # created if missing (PVE 9)\n/etc/apt/sources.list.d/pve-no-subscription.list # created if missing (PVE 8)"
|
||||
"code": "scripts/utilities/system_utils.sh # this script\nscripts/global/utils-install-functions.sh # PROXMENUX_UTILS, install_single_package\nscripts/global/repository-functions.sh # ensure_repositories\nscripts/global/repository_policy.py # reads and switches repositories through the Proxmox API\n/etc/apt/sources.list.d/proxmox.sources # no-subscription source, written by Proxmox when the switch is accepted"
|
||||
},
|
||||
"related": {
|
||||
"heading": "Related",
|
||||
|
||||
@@ -60,6 +60,7 @@
|
||||
"title": "Preparar el sistema",
|
||||
"body": "Tras una única confirmación, el script:",
|
||||
"items": [
|
||||
"Comprueba los repositorios del host antes de eliminar o instalar nada: en un host sin suscripción activa y solo con el repositorio Enterprise se pregunta antes de cambiar a sin suscripción, y la instalación se detiene cuando el cambio se rechaza.",
|
||||
"Instala <code>pve-headers-$(uname -r)</code> (o <code>proxmox-headers-$(uname -r)</code>), <code>build-essential</code> y <code>dkms</code>.",
|
||||
"Crea el archivo propiedad de ProxMenux <code>/etc/modprobe.d/proxmenux-nouveau-blacklist.conf</code> con <code>blacklist nouveau</code> y <code>options nouveau modeset=0</code>, registra si añadió la línea complementaria a <code>blacklist.conf</code> e intenta descargar el módulo inmediatamente.",
|
||||
"Escribe <code>/etc/modules-load.d/nvidia-vfio.conf</code> con <code>nvidia</code> y <code>nvidia_uvm</code> para que los módulos se carguen pronto en el arranque."
|
||||
|
||||
@@ -400,7 +400,43 @@
|
||||
"events": "<code>gpu_mode_switch</code>, <code>gpu_passthrough_blocked</code>, <code>pci_passthrough_conflict</code>, <code>ai_model_migrated</code>."
|
||||
}
|
||||
],
|
||||
"burstNote": "Un puñado de tipos de agregación <code>burst_*</code> (<code>burst_auth_fail</code>, <code>burst_ip_block</code>, <code>burst_disk_io</code>, etc.) existen solo en el dispatcher — reemplazan ráfagas de eventos individuales con un único mensaje de resumen y no se exponen como toggles en la UI. Heredan el estado on/off de su tipo de evento padre."
|
||||
"burstNote": "Un puñado de tipos de agregación <code>burst_*</code> (<code>burst_auth_fail</code>, <code>burst_ip_block</code>, <code>burst_disk_io</code>, etc.) existen solo en el dispatcher — reemplazan ráfagas de eventos individuales con un único mensaje de resumen y no se exponen como toggles en la UI. Heredan el estado on/off de su tipo de evento padre.",
|
||||
"backupResults": {
|
||||
"heading": "Resultados de backup",
|
||||
"intro": "Una notificación sobre un trabajo de backup de Proxmox indica cómo terminó el trabajo. El resultado se lee del informe que envía Proxmox, y determina el título, el icono que se muestra con <em>Rich messages</em> activado y la fila de estado del email.",
|
||||
"headerIcon": "Icono",
|
||||
"headerResult": "Resultado",
|
||||
"headerWhen": "Cuándo",
|
||||
"rows": [
|
||||
{
|
||||
"icon": "💾✅",
|
||||
"result": "Backup completado",
|
||||
"when": "Todos los guests del trabajo terminaron y el informe no contiene advertencias."
|
||||
},
|
||||
{
|
||||
"icon": "💾⚠️",
|
||||
"result": "Backup completado con advertencias",
|
||||
"when": "Todos los guests terminaron y el informe contiene al menos una línea de advertencia."
|
||||
},
|
||||
{
|
||||
"icon": "💾❌",
|
||||
"result": "Backup fallido",
|
||||
"when": "Un guest falló, o el trabajo se detuvo con un error."
|
||||
},
|
||||
{
|
||||
"icon": "💾❔",
|
||||
"result": "Resultado del backup sin confirmar",
|
||||
"when": "El informe está incompleto o no indica un resultado para cada guest."
|
||||
}
|
||||
],
|
||||
"items": [
|
||||
"<strong>El título indica sobre qué era el trabajo.</strong> Incluye el almacenamiento y, en un trabajo con un solo guest, su tipo, nombre e ID. Un trabajo fallido nombra el guest que falló.",
|
||||
"<strong>El cuerpo lista cada guest</strong> con su propio resultado, tamaño, duración y archivo, seguido de una línea con los totales del trabajo.",
|
||||
"<strong>Las advertencias y los errores se listan una vez.</strong> Las líneas repetidas se muestran una sola vez con la causa principal primero; a partir de ocho líneas, el resto se cuenta en una línea de cierre y permanece en el log de la tarea de Proxmox.",
|
||||
"<strong>Un trabajo que falla antes de su primer guest</strong> muestra la causa que dio Proxmox, por ejemplo un almacenamiento que no existe.",
|
||||
"<strong>Los resúmenes conservan el resultado.</strong> Un backup listado en el resumen de Quiet Hours o en el Daily Digest lleva el icono de su propio resultado."
|
||||
]
|
||||
}
|
||||
},
|
||||
"history": {
|
||||
"heading": "Historial",
|
||||
|
||||
@@ -21,12 +21,13 @@
|
||||
"Establece <code>pigz: 1</code> en <code>/etc/vzdump.conf</code> para que la herramienta de backup de Proxmox use pigz de forma nativa.",
|
||||
"Instala el paquete apt <code>pigz</code> si no está presente.",
|
||||
"Escribe un script wrapper en <code>/bin/pigzwrapper</code> que reenvía todos los argumentos a <code>/usr/bin/pigz</code>.",
|
||||
"Aparta el binario original <code>/bin/gzip</code> a <code>/bin/gzip.original</code> y sustituye <code>/bin/gzip</code> por el wrapper. A partir de ahí, <em>cualquier cosa</em> que llame a <code>gzip</code> — logrotate, <code>tar czf</code>, scripts, vzdump — usa pigz de forma transparente."
|
||||
"Registra una desviación de dpkg para el binario <code>gzip</code> del sistema (<code>/usr/bin/gzip</code> en Proxmox VE 9, <code>/bin/gzip</code> en Proxmox VE 8): el binario real se conserva a su lado como <code>gzip.distrib</code> y el wrapper ocupa su lugar. A partir de ahí, <em>cualquier cosa</em> que llame a <code>gzip</code> — logrotate, <code>tar czf</code>, scripts, vzdump — usa pigz de forma transparente.",
|
||||
"Comprueba que el fichero conservado como <code>gzip.distrib</code> es un gzip que funciona antes de colocar el wrapper, y reinstala primero el paquete <code>gzip</code> cuando no lo es. Un host que aún tiene el intercambio anterior con <code>/bin/gzip.original</code> pasa a la desviación al aplicar de nuevo la opción."
|
||||
],
|
||||
"replacesTitle": "Esto sustituye un binario del sistema",
|
||||
"replacesBody": "Sustituir <code>/bin/gzip</code> por un wrapper es inusual. Es seguro (el wrapper produce salida compatible con gzip), pero conviene saberlo: scripts que tengan paths hardcodeados, que se ejecuten dentro de chroots restrictivos o que verifiquen hashes de binarios pueden comportarse de forma distinta. El binario original se conserva como <code>/bin/gzip.original</code> para que siempre puedas dar marcha atrás.",
|
||||
"replacesBody": "Colocar un wrapper en el lugar de <code>gzip</code> es inusual. Es seguro (el wrapper produce salida compatible con gzip), pero conviene saberlo: scripts que tengan paths hardcodeados, que se ejecuten dentro de chroots restrictivos o que verifiquen hashes de binarios pueden comportarse de forma distinta. El binario real se conserva como <code>gzip.distrib</code> y, al ser una desviación de dpkg, una actualización del paquete <code>gzip</code> — o la actualización de Proxmox VE 8 a 9 — actualiza ese fichero y deja el wrapper en su sitio.",
|
||||
"revertTitle": "Reversible desde el menú Uninstall",
|
||||
"revertBody": "Esta optimización está registrada. <link>Uninstall Optimizations</link> restaura <code>/bin/gzip.original</code> en su sitio, elimina el <code>pigzwrapper</code>, revierte las dos líneas añadidas a <code>/etc/vzdump.conf</code> y ejecuta <code>apt purge pigz</code>. Equivalente manual:",
|
||||
"revertBody": "Esta optimización está registrada. <link>Uninstall Optimizations</link> copia el binario real desde <code>gzip.distrib</code> sobre el wrapper, elimina la desviación y el <code>pigzwrapper</code>, comenta la línea <code>pigz</code> de <code>/etc/vzdump.conf</code> y ejecuta <code>apt purge pigz</code> una vez verificado que gzip funciona. Equivalente manual en Proxmox VE 9:",
|
||||
"verifyTitle": "Verificación",
|
||||
"verifyBody": "Tras aplicar, <code>gzip --version</code> debería mencionar pigz. Un benchmark rápido también muestra la diferencia de velocidad en un host multinúcleo:",
|
||||
"whenTitle": "Cuándo importa más",
|
||||
|
||||
@@ -205,7 +205,7 @@
|
||||
},
|
||||
{
|
||||
"tool": "pigz (gzip paralelo)",
|
||||
"restores": "Devuelve /bin/gzip.original a su sitio, elimina /bin/pigzwrapper, revierte las líneas pigz y bwlimit en /etc/vzdump.conf y hace apt purge pigz."
|
||||
"restores": "Copia el gzip real desde gzip.distrib, elimina la desviación de dpkg y /bin/pigzwrapper, comenta la línea pigz en /etc/vzdump.conf y hace apt purge pigz una vez verificado gzip."
|
||||
},
|
||||
{
|
||||
"tool": "High Availability services",
|
||||
|
||||
@@ -78,7 +78,7 @@
|
||||
},
|
||||
{
|
||||
"title": "Actualización del sistema Proxmox",
|
||||
"description": "Higiene de repos + apt update + apt dist-upgrade con preguntar antes de reiniciar. Detecta la versión mayor de PVE (8 o 9) y enruta al worker correspondiente. Cambia a sin suscripción, elimina paquetes conflictivos, ejecuta autoremove.",
|
||||
"description": "Comprobación de repositorios + apt update + apt dist-upgrade con preguntar antes de reiniciar. Detecta la versión mayor de PVE (8 o 9), mantiene los repositorios configurados y pregunta antes de cambiar a sin suscripción un host que no la tiene, y después ejecuta autoremove.",
|
||||
"href": "/docs/utils/system-update"
|
||||
},
|
||||
{
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
},
|
||||
"header": {
|
||||
"title": "Actualización del sistema Proxmox",
|
||||
"description": "Wrapper que delega en un único worker seguro (<code>update-pve-safe.sh</code>) que detecta la versión mayor de Proxmox por sí mismo. Los repositorios se limpian cuando se solapan con las fuentes base de Proxmox / Debian, se actualizan todos los paquetes, se recompilan los drivers DKMS gestionados por ProxMenux si aterriza un kernel nuevo y el prompt de reinicio solo se dispara cuando el kernel realmente cambió. También lanzable desde el botón <em>Update Now</em> de la cabecera del dashboard de ProxMenux Monitor cuando se detectan actualizaciones pendientes.",
|
||||
"description": "Wrapper que delega en un único worker seguro (<code>update-pve-safe.sh</code>) que detecta la versión mayor de Proxmox por sí mismo. Los repositorios configurados se leen a través de la API de Proxmox y se mantienen como están; en un host sin suscripción activa cuyo único repositorio de Proxmox es Enterprise se pregunta antes de cambiar a sin suscripción. Se actualizan todos los paquetes, se recompilan los drivers DKMS gestionados por ProxMenux si aterriza un kernel nuevo y el prompt de reinicio solo se dispara cuando el kernel realmente cambió. También lanzable desde el botón <em>Update Now</em> de la cabecera del dashboard de ProxMenux Monitor cuando se detectan actualizaciones pendientes.",
|
||||
"section": "Utilidades"
|
||||
},
|
||||
"calloutWhat": {
|
||||
@@ -25,7 +25,7 @@
|
||||
"intro": "Esta opción ejecuta <strong>exactamente</strong> el comando apt de arriba, envuelto con la higiene de repos, la recompilación DKMS de los drivers gestionados por ProxMenux y la limpieza post-upgrade que la guía oficial de upgrade también recomienda. Todo lo de abajo mapea 1:1 a <code>scripts/utilities/proxmox_update.sh</code> y al único worker seguro <code>scripts/global/update-pve-safe.sh</code> — nada implícito, cada paso está en el código:",
|
||||
"items": [
|
||||
"<strong>Detecta la versión mayor de PVE</strong> desde dentro del worker (<code>pveversion | grep -oP ''pve-manager/\\K[0-9]+''</code>) y adapta las URLs base de repo Proxmox / Debian (bookworm en PVE 8, trixie en PVE 9). No hay reparto a scripts worker por versión — un único worker seguro maneja ambas.",
|
||||
"<strong>Limpia los repositorios de forma conservadora.</strong> <code>ensure_repositories</code> se ejecuta primero pero solo cuando faltan las fuentes base de Proxmox / Debian — un host bare las recibe escritas, un host configurado es un no-op. <code>cleanup_duplicate_repos</code> elimina después duplicados exactos por URL + Suite + Component solo contra <code>proxmox.sources</code> / <code>debian.sources</code>; los archivos propios del usuario (enterprise, Ceph, mirrors NTP alternativos, entradas custom de <code>download.proxmox.com/*</code> o <code>pve-*.list</code> escritos a mano) no se tocan, y cada archivo se respalda antes de editarse.",
|
||||
"<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 el upgrade no interactivamente</strong> con <code>DEBIAN_FRONTEND=noninteractive</code> y <code>--force-confdef --force-confold</code> — si un archivo de configuración que ya modificaste también cambió upstream, tu versión se queda en su sitio. Sin sobrescrituras silenciosas de configuraciones propias.",
|
||||
"<strong>No fuerza utilidades opcionales.</strong> El worker seguro no empuja <code>zfsutils-linux</code>, <code>chrony</code>, <code>ifupdown2</code> ni paquetes similares al host — una instalación de Proxmox que optó por no tener alguno de ellos conserva su elección. La ausencia de paquetes la surface los flujos de instalación de alto nivel, no la ruta de actualización.",
|
||||
"<strong>Comprobación de sanity de metadatos LVM</strong> contra cabeceras PV sueltas de discos en passthrough (solo aviso, sin arreglo automático).",
|
||||
@@ -63,10 +63,9 @@
|
||||
"heading": "Qué hace el worker",
|
||||
"intro": "Un único worker (<code>scripts/global/update-pve-safe.sh</code>) maneja tanto PVE 8 como PVE 9. Detecta la versión mayor internamente y usa el codename propio de cada versión (<code>bookworm</code> o <code>trixie</code>) para sus fuentes base. Las etapas son:",
|
||||
"items": [
|
||||
"<strong>Comprobaciones previas.</strong> Verifica al menos ~1 GB libres en <code>/var/cache/apt/archives</code> y hace ping a <code>download.proxmox.com</code>. Aborta pronto con un mensaje claro cuando falla cualquiera de las dos, para que la ejecución no muera a mitad de una transacción apt.",
|
||||
"<strong>Bootstrap de repos.</strong> <code>ensure_repositories</code> escribe las fuentes base Proxmox / Debian solo cuando faltan (un host fresco o limpiado a mano); en un host configurado no hace nada.",
|
||||
"<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>Limpieza conservadora de duplicados.</strong> <code>cleanup_duplicate_repos</code> elimina solo coincidencias exactas por URL + Suite + Component contra <code>proxmox.sources</code> / <code>debian.sources</code>. Los archivos propios del usuario — enterprise, Ceph, mirrors NTP alternativos, entradas custom de <code>download.proxmox.com/*</code>, <code>pve-*.list</code> escritos a mano — se dejan intactos. Cada archivo se respalda antes de modificarse.",
|
||||
"<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> El wrapper pide un sí explícito antes de tocar apt.",
|
||||
"<strong>apt full-upgrade.</strong> Se ejecuta con <code>DEBIAN_FRONTEND=noninteractive</code> y <code>--force-confdef --force-confold</code> para que cualquier archivo de configuración que personalizaste mantenga su contenido actual cuando upstream también lo cambió. Nunca sobrescribe silenciosamente configs editados por el usuario.",
|
||||
@@ -96,14 +95,16 @@
|
||||
"body": "Correr en un kernel antiguo tras actualizar <code>linux-image-*</code> significa que estás en un sistema medio actualizado: userspace nuevo, kernel viejo. La mayoría del tiempo las cosas funcionan, pero los módulos ZFS, grupos IOMMU, KSMBD y cualquier driver fuera del árbol solo cuadran con el kernel para el que fueron construidos — un desajuste produce fallos oscuros. Reinicia en el primer momento razonable."
|
||||
},
|
||||
"noSub": {
|
||||
"heading": "Cómo trata el worker seguro al repo enterprise",
|
||||
"intro": "Proxmox entrega los hosts con el repo enterprise habilitado por defecto. Sin una suscripción de pago, ese repo devuelve 401 en <code>apt-get update</code>. El worker seguro deliberadamente <strong>no</strong> toca los repositorios enterprise ni Ceph — un host corriendo con una suscripción real no debe verse la configuración reescrita en silencio. Lo que ocurre en su lugar:",
|
||||
"heading": "Cómo trata el worker seguro 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": [
|
||||
"En un <strong>host bare</strong> sin fuentes base de Proxmox / Debian, <code>ensure_repositories</code> escribe la fuente sin suscripción en formato deb822 (<code>proxmox.sources</code>) con el codename correspondiente a la versión mayor detectada (<code>bookworm</code> para PVE 8, <code>trixie</code> para PVE 9) y las fuentes Debian correspondientes.",
|
||||
"En un <strong>host configurado</strong>, <code>ensure_repositories</code> es un no-op — lo que el usuario haya elegido (sin suscripción, enterprise o una mezcla) se preserva.",
|
||||
"Los archivos enterprise <code>pve-enterprise.sources</code> / <code>ceph.sources</code> nunca son modificados por la ruta de actualización. La eliminación del repo enterprise cuando no se quiere se gestiona desde otra parte de ProxMenux (el script post-instalación automatizado), no desde aquí."
|
||||
"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": "Si tienes una suscripción de pago, mantén <code>pve-enterprise.sources</code> habilitado y el worker seguro lo dejará dirigir el upgrade sin cambios. Si no la tienes, o bien ejecuta primero el post-instalación automatizado (que hace el cambio y lo registra) o comenta la fuente enterprise a mano — la ruta de actualización no lo hará por ti."
|
||||
"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",
|
||||
@@ -124,7 +125,7 @@
|
||||
"items": [
|
||||
{
|
||||
"title": "apt update falla con 401 Unauthorized",
|
||||
"body": "El repo enterprise sigue habilitado pero no tienes suscripción. El worker debería detectarlo y cambiar automáticamente; si no lo hizo, comenta la línea en <code>/etc/apt/sources.list.d/pve-enterprise.list</code> (o pon <code>Enabled: false</code> en el deb822 <code>pve-enterprise.sources</code>) y vuelve a ejecutar."
|
||||
"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\"",
|
||||
@@ -142,7 +143,7 @@
|
||||
},
|
||||
"files": {
|
||||
"heading": "Archivos implicados",
|
||||
"code": "scripts/utilities/proxmox_update.sh # este script (wrapper)\nscripts/global/update-pve-safe.sh # único worker seguro (PVE 8 + PVE 9)\nscripts/global/common-functions.sh # cleanup_duplicate_repos usado por el worker\nscripts/global/utils-install-functions.sh # ensure_repositories + pmx_rebuild_dkms_after_kernel\n/usr/local/share/proxmenux/components_status.json # registro de drivers DKMS gestionados por ProxMenux\n/etc/apt/sources.list.d/proxmox.sources # fuente deb822 sin suscripción (bootstrap host bare)\n/etc/apt/sources.list.d/debian.sources # fuentes deb822 de Debian (bootstrap host bare)\n/var/run/reboot-required # se lee para decidir el prompt de reinicio\n# Fallback de reinicio cuando needrestart no está instalado:\n# dpkg-query -W 'proxmox-kernel-*-pve-signed' 'pve-kernel-*-pve' vs. uname -r"
|
||||
"code": "scripts/utilities/proxmox_update.sh # este script (wrapper)\nscripts/global/update-pve-safe.sh # único worker seguro (PVE 8 + PVE 9)\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\nscripts/global/utils-install-functions.sh # pmx_rebuild_dkms_after_kernel\n/usr/local/share/proxmenux/components_status.json # registro de drivers DKMS gestionados por ProxMenux\n/etc/apt/sources.list.d/proxmox.sources # fuente sin suscripción, escrita por Proxmox al aceptar el cambio\n/var/run/reboot-required # se lee para decidir el prompt de reinicio\n# Fallback de reinicio cuando needrestart no está instalado:\n# dpkg-query -W 'proxmox-kernel-*-pve-signed' 'pve-kernel-*-pve' vs. uname -r"
|
||||
},
|
||||
"related": {
|
||||
"heading": "Relacionado",
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
},
|
||||
"info": {
|
||||
"title": "Qué hace",
|
||||
"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> configura los repos Proxmox + Debian 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."
|
||||
"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."
|
||||
},
|
||||
"opening": {
|
||||
"heading": "Abrir el instalador",
|
||||
@@ -204,7 +204,7 @@
|
||||
"howItWorks": {
|
||||
"heading": "Cómo funciona la instalación de un paquete",
|
||||
"items": [
|
||||
"<code>ensure_repositories</code> detecta PVE 8 o 9, escribe los archivos de fuentes Proxmox sin suscripción + Debian si faltan, ejecuta <code>apt-get update</code>.",
|
||||
"<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.",
|
||||
"<code>install_single_package \"pkg\" \"verify_cmd\" \"description\"</code> ejecuta <code>apt-get install -y \"$pkg\"</code> con feedback (<code>msg_info</code> / <code>msg_ok</code> / <code>msg_error</code>)."
|
||||
],
|
||||
"verifyIntro": "Tras instalar, el comando de verificación se comprueba con <code>command -v \"$verify_cmd\"</code>. Tres desenlaces:",
|
||||
@@ -224,7 +224,7 @@
|
||||
"troubleshoot": {
|
||||
"heading": "Solución de problemas",
|
||||
"reposTitle": "\"Failed to configure repositories. Installation aborted.\"",
|
||||
"reposBody": "El host no puede alcanzar los repos de Proxmox o Debian, o no tiene la configuración base esperada. Desde una consola: <code>cat /etc/apt/sources.list /etc/apt/sources.list.d/*.sources</code> y <code>apt-get update</code> manualmente para ver el error real.",
|
||||
"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",
|
||||
@@ -232,7 +232,7 @@
|
||||
},
|
||||
"files": {
|
||||
"heading": "Archivos implicados",
|
||||
"code": "scripts/utilities/system_utils.sh # this script\nscripts/global/utils-install-functions.sh # PROXMENUX_UTILS, ensure_repositories,\n # install_single_package\n/etc/apt/sources.list # may be touched by ensure_repositories\n/etc/apt/sources.list.d/proxmox.sources # created if missing (PVE 9)\n/etc/apt/sources.list.d/debian.sources # created if missing (PVE 9)\n/etc/apt/sources.list.d/pve-no-subscription.list # created if missing (PVE 8)"
|
||||
"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"
|
||||
},
|
||||
"related": {
|
||||
"heading": "Relacionado",
|
||||
|
||||
Reference in New Issue
Block a user