Proxmox VE ohne Subscription: kostenlose Repositories nutzen und Subscription-Hinweis ausblenden
Proxmox VE 9: No-Subscription-Popup deaktivieren
Fix
Betroffene Datei:
/usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js
Datei öffnen:
nano /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js
Mit Strg + W nach folgendem Text suchen:
checked_command: function (orig_cmd)
Den vollständigen checked_command-Block löschen und an exakt derselben Position durch diesen Block ersetzen. Die vorhandene Einrückung beibehalten:
checked_command: function (orig_cmd) {
orig_cmd();
},
Wichtig: Der komplette bisherige Inhalt der Funktion wird entfernt. Es bleibt kein alter Subscription-Code unterhalb von orig_cmd() stehen.
Danach speichern, Nano schließen und pveproxy neu starten:
systemctl restart pveproxy
Anschließend die Proxmox-Weboberfläche mit Strg + F5 neu laden.
Quick-Befehl
Wenn du die Datei nicht manuell bearbeiten willst, als root direkt in der Terminal-Session ausführen:
python3 -c '
from pathlib import Path
import re, shutil
p = Path("/usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js")
s = p.read_text()
m = re.search(r"^([ \t]*)checked_command:\s*function\s*\(orig_cmd\)\s*\{", s, re.M)
if not m:
raise SystemExit("FEHLER: checked_command wurde nicht gefunden")
indent = m.group(1)
start = m.start()
brace = s.find("{", m.start())
depth = 0
end = None
for i in range(brace, len(s)):
if s[i] == "{":
depth += 1
elif s[i] == "}":
depth -= 1
if depth == 0:
end = i + 1
break
if end is None:
raise SystemExit("FEHLER: Ende von checked_command wurde nicht gefunden")
if end >= len(s) or s[end] != ",":
raise SystemExit("FEHLER: Abschließendes Komma von checked_command wurde nicht gefunden")
end += 1
replacement = (
f"{indent}checked_command: function (orig_cmd) {{\n"
f"{indent} orig_cmd();\n"
f"{indent}}},"
)
if s[start:end] == replacement:
print("Patch ist bereits sauber gesetzt")
else:
shutil.copy2(p, str(p) + ".bak")
p.write_text(s[:start] + replacement + s[end:])
print("Patch angewendet; Backup: " + str(p) + ".bak")
' && systemctl restart pveproxy && systemctl is-active pveproxy
Der Befehl übernimmt die vorhandene Einrückung der checked_command-Zeile und ersetzt den vollständigen Funktionsblock. Danach steht der Block an derselben Position wie vorher und ist sauber wie folgt eingerückt:
checked_command: function (orig_cmd) {
orig_cmd();
},
Der alte Subscription-Code wird vollständig entfernt. Wenn tatsächlich eine Änderung vorgenommen wird, wird die vorherige Datei als proxmoxlib.js.bak gesichert.
Wenn am Ende active ausgegeben wird, läuft pveproxy wieder.
Änderung rückgängig machen
cp -a /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js.bak /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js && systemctl restart pveproxy && systemctl is-active pveproxy
Nach Updates
Ein Update von proxmox-widget-toolkit kann proxmoxlib.js ersetzen. Wenn das Popup danach wieder erscheint, den Quick-Befehl erneut ausführen. Vor einem erneuten tatsächlichen Patch wird die dann aktuelle Paketversion wieder als .bak gesichert.
No comments to display
No comments to display