Proxmox VE ohne Subscription: kostenlose Repositories nutzen und Subscription-Hinweis ausblenden Diese Anleitung beschreibt, wie ein Proxmox VE 9 System unter Debian 13 Trixie sauber auf kostenlose Repositories umgestellt wird. Zusätzlich wird erklärt, wie die Popup-Meldung „No valid subscription - You do not have a valid subscription for this server“ in der Proxmox-Weboberfläche ausgeblendet wird. Wichtig: Das Verwenden von pve-no-subscription und ceph no-subscription ist für Homelab- und Testsysteme normal. Proxmox zeigt dafür aber weiterhin Warnungen in der Repository-Ansicht an, weil diese Repositories nicht für produktive Systeme mit Support-Anspruch empfohlen werden. Nicht verwechseln: Die gelben Repository-Warnungen unter Updates → Repositories sind nicht dieselbe Meldung wie das Popup „No valid subscription“. Der JavaScript-Patch entfernt nur das Popup, nicht die Repository-Warnungen. 1. Zielzustand Am Ende sollen nur noch die wirklich benötigten Paketquellen aktiv sein. Für ein normales Proxmox VE 9 Homelab ohne Subscription: /etc/apt/sources.list.d/debian.sources /etc/apt/sources.list.d/proxmox.sources Optional, wenn Ceph verwendet werden soll: /etc/apt/sources.list.d/ceph.sources Nicht aktiv ohne Subscription: /etc/apt/sources.list.d/pve-enterprise.sources /etc/apt/sources.list.d/ceph-enterprise.sources Die Datei /etc/apt/sources.list sollte auf einem aufgeräumten Proxmox VE 9 System idealerweise leer sein oder nur Kommentare enthalten. Die eigentlichen Debian-Repos liegen dann sauber im Deb822-Format in /etc/apt/sources.list.d/debian.sources. 2. Aktuelle Version prüfen pveversion cat /etc/os-release uname -r Bei Proxmox VE 9 sollte Debian 13 Trixie verwendet werden: VERSION_CODENAME=trixie 3. Vor Änderungen Backups erstellen Vor dem Aufräumen der Repositories werden die vorhandenen APT-Dateien gesichert. Das ist langweilig, aber deutlich besser als später aus Terminal-Asche rekonstruieren zu müssen, was man vor fünf Minuten zerstört hat. mkdir -p /root/apt-repo-backup cp -a /etc/apt/sources.list /root/apt-repo-backup/sources.list.bak 2>/dev/null || true cp -a /etc/apt/sources.list.d /root/apt-repo-backup/sources.list.d.bak 4. Repository-Dateien ansehen Alle vorhandenen Repository-Dateien anzeigen: ls -la /etc/apt/ ls -la /etc/apt/sources.list.d/ Typische Dateien: /etc/apt/sources.list /etc/apt/sources.list.d/debian.sources /etc/apt/sources.list.d/proxmox.sources /etc/apt/sources.list.d/pve-enterprise.sources /etc/apt/sources.list.d/ceph.sources 5. Problem aus der Proxmox-Repository-Ansicht erklären In der Proxmox-GUI unter Updates → Repositories können mehrere Dinge sichtbar sein: /etc/apt/sources.list enthält alte oder doppelte Debian-Einträge. /etc/apt/sources.list.d/debian.sources enthält ebenfalls Debian-Einträge. Dadurch sind Debian-Repositories teilweise doppelt vorhanden. pve-no-subscription ist aktiv. Das ist für Homelab okay, erzeugt aber eine Proxmox-Warnung. ceph no-subscription ist aktiv. Auch das erzeugt eine Proxmox-Warnung. pve-enterprise ist deaktiviert. Das ist ohne Subscription korrekt. Die Warnungen „The no-subscription repository is not recommended for production use“ und „The Ceph no-subscription/main repository is not recommended for production use“ sind bei kostenloser Repo-Nutzung normal. Sie bedeuten nicht automatisch, dass apt update kaputt ist. 6. /etc/apt/sources.list aufräumen Auf einem sauberen Proxmox VE 9 System sollten Debian-Repositories im Deb822-Format in /etc/apt/sources.list.d/debian.sources stehen. Die alte Datei /etc/apt/sources.list sollte deshalb keine aktiven Debian-Repos mehr enthalten. Datei öffnen: nano /etc/apt/sources.list Empfohlener Inhalt: # Debian repositories are managed in: # /etc/apt/sources.list.d/debian.sources # # This file is intentionally left without active repository entries. Dadurch werden doppelte Einträge zwischen /etc/apt/sources.list und /etc/apt/sources.list.d/debian.sources vermieden. 7. Debian-Repositories sauber setzen Datei öffnen: nano /etc/apt/sources.list.d/debian.sources Empfohlener Inhalt für Debian 13 Trixie: Types: deb URIs: http://deb.debian.org/debian/ Suites: trixie trixie-updates Components: main contrib non-free non-free-firmware Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg Types: deb URIs: http://security.debian.org/debian-security/ Suites: trixie-security Components: main contrib non-free non-free-firmware Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg contrib, non-free und non-free-firmware sind sinnvoll, wenn Firmware, NVIDIA-Komponenten oder andere nicht vollständig freie Pakete benötigt werden. Keine Debian-Repositories entfernen, nur weil Proxmox installiert ist. Proxmox basiert weiterhin auf Debian und braucht Debian-Pakete. 8. Debian Backports optional setzen Backports sind optional. Wenn sie verwendet werden, sollten sie bewusst und nicht als wilde Paket-Fundgrube genutzt werden. Falls Backports gewünscht sind, kann eine separate Datei genutzt werden: nano /etc/apt/sources.list.d/debian-backports.sources Inhalt: Types: deb URIs: http://deb.debian.org/debian/ Suites: trixie-backports Components: main contrib non-free non-free-firmware Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg Wenn Backports nicht benötigt werden, Datei weglassen. Weniger Repos bedeutet weniger Möglichkeiten für APT, sich wie ein überforderter Einkaufswagen zu benehmen. 9. Proxmox Enterprise Repository deaktivieren Ohne Subscription darf das Enterprise-Repository nicht aktiv sein. Datei öffnen: nano /etc/apt/sources.list.d/pve-enterprise.sources Empfohlener Inhalt: Types: deb URIs: https://enterprise.proxmox.com/debian/pve Suites: trixie Components: pve-enterprise Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg Enabled: no Wichtig ist: Enabled: no Wenn die Datei nicht existiert, ist das ebenfalls okay. Dann ist das Enterprise-Repository nicht konfiguriert. 10. Kostenloses Proxmox Repository aktivieren Datei öffnen oder erstellen: nano /etc/apt/sources.list.d/proxmox.sources Inhalt: Types: deb URIs: http://download.proxmox.com/debian/pve Suites: trixie Components: pve-no-subscription Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg Architectures: amd64 Die Zeile Architectures: amd64 verhindert Warnungen, wenn auf dem System zusätzlich die Architektur i386 aktiviert ist. Proxmox stellt keine i386-Pakete bereit. 11. Proxmox Keyring prüfen Falls der Proxmox-Keyring noch nicht vorhanden ist: apt install -y wget ca-certificates wget https://enterprise.proxmox.com/debian/proxmox-archive-keyring-trixie.gpg -O /usr/share/keyrings/proxmox-archive-keyring.gpg Hash prüfen: sha256sum /usr/share/keyrings/proxmox-archive-keyring.gpg Erwarteter Hash: 136673be77aba35dcce385b28737689ad64fd785a797e57897589aed08db6e45 /usr/share/keyrings/proxmox-archive-keyring.gpg 12. Ceph Repository aufräumen Ceph wird nur benötigt, wenn auf dem Proxmox-Cluster wirklich Ceph verwendet werden soll. Wenn Ceph noch nicht genutzt wird, kann das Ceph-Repository deaktiviert werden. Variante A: Ceph wird aktuell nicht genutzt Datei öffnen: nano /etc/apt/sources.list.d/ceph.sources Inhalt zum Deaktivieren: Types: deb URIs: http://download.proxmox.com/debian/ceph-squid Suites: trixie Components: no-subscription Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg Architectures: amd64 Enabled: no Damit verschwindet auch die Ceph-no-subscription-Warnung, weil das Ceph-Repository nicht mehr aktiv ist. Variante B: Ceph wird genutzt oder vorbereitet Datei öffnen: nano /etc/apt/sources.list.d/ceph.sources Inhalt: Types: deb URIs: http://download.proxmox.com/debian/ceph-squid Suites: trixie Components: no-subscription Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg Architectures: amd64 Wenn das Ceph-no-subscription-Repository aktiv ist, zeigt Proxmox in der Repository-Ansicht eine Warnung an. Das ist bei kostenloser Nutzung normal. Ceph Enterprise Repository deaktivieren Falls vorhanden: nano /etc/apt/sources.list.d/ceph-enterprise.sources Inhalt: Types: deb URIs: https://enterprise.proxmox.com/debian/ceph-squid Suites: trixie Components: enterprise Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg Enabled: no 13. i386-Architektur prüfen Wenn apt update meldet, dass Proxmox keine i386-Pakete anbietet, ist das meist harmlos. Sauberer ist aber, entweder in den Proxmox- und Ceph-Repos Architectures: amd64 zu setzen oder i386 zu entfernen. Aktive Architekturen anzeigen: dpkg --print-architecture dpkg --print-foreign-architectures Wenn i386 nicht benötigt wird: dpkg --remove-architecture i386 apt update i386 nur entfernen, wenn keine 32-bit-Pakete benötigt werden. Auf einem reinen Proxmox-Server ist das meistens der Fall. 14. Paketlisten aktualisieren apt update Gute Ausgabe: Keine 401 Unauthorized Keine 403 Forbidden Keine NO_PUBKEY Keine doppelten Repository-Warnungen Keine falschen Suites wie bookworm auf einem trixie-System Wenn apt update sauber ist: apt full-upgrade Danach prüfen: dpkg --audit pveversion uname -r 15. Repository-Warnungen in der Proxmox-GUI verstehen Unter Updates → Repositories kann Proxmox weiterhin Warnungen anzeigen. Diese sind nicht immer Fehler. Meldung Bedeutung Was tun? The no-subscription repository is not recommended for production use pve-no-subscription ist aktiv. Für Homelab okay. Für Produktivsystem Subscription nutzen. The Ceph no-subscription/main repository is not recommended for production use Ceph no-subscription ist aktiv. Für Homelab okay. Wenn Ceph nicht genutzt wird, Ceph-Repo deaktivieren. Some suites are misconfigured Eine Quelle verwendet eine unerwartete Suite oder ist doppelt/falsch eingetragen. Repository-Dateien prüfen und doppelte Einträge entfernen. pve-enterprise aktiv ohne Subscription Enterprise-Repository ist aktiv. Mit Enabled: no deaktivieren. Subscription-Popup in der Weboberfläche deaktivieren Achtung: Dieser Teil verändert eine Datei aus dem Paket proxmox-widget-toolkit. Das ist kein offiziell unterstützter Proxmox-Schalter. Nach Updates kann die Änderung überschrieben werden. Betroffene Datei: /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js 16. Backup der JavaScript-Datei erstellen cp -a /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js.bak 17. JavaScript-Datei bearbeiten nano /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js In Nano mit Strg + W nach folgendem Text suchen: checked_command: function (orig_cmd) Der originale Block sieht ungefähr so aus: checked_command: function (orig_cmd) { Proxmox.Utils.API2Request({ url: '/nodes/localhost/subscription', method: 'GET', failure: function (response, opts) { Ext.Msg.alert(gettext('Error'), response.htmlStatus); }, success: function (response, opts) { let res = response.result; if ( res === null || res === undefined || !res || res.data.status.toLowerCase() !== 'active' ) { Ext.Msg.show({ title: gettext('No valid subscription'), icon: Ext.Msg.WARNING, message: Proxmox.Utils.getNoSubKeyHtml(res.data.url), buttons: Ext.Msg.OK, callback: function (btn) { if (btn !== 'ok') { return; } orig_cmd(); }, }); } else { orig_cmd(); } }, }); }, 18. checked_command-Block ersetzen Den kompletten Block durch diesen kurzen Block ersetzen: checked_command: function (orig_cmd) { orig_cmd(); }, Das Komma am Ende muss bleiben. Wenn das Komma fehlt, kann die JavaScript-Struktur kaputtgehen und die Weboberfläche lädt nicht mehr korrekt. 19. Vollständiger Zielausschnitt Der Bereich um alertResponseFailure und checked_command sollte danach so aussehen: // can be useful for catching displaying errors from the API, e.g.: // Proxmox.Async.api2({ // ... // }).catch(Proxmox.Utils.alertResponseFailure); alertResponseFailure: (res) => Ext.Msg.alert(gettext('Error'), res.htmlStatus || res.result.message), checked_command: function (orig_cmd) { orig_cmd(); }, Alte Code-Blöcke nicht nur auskommentieren, sondern wirklich entfernen. Auskommentierter Vendor-Code ist wie ein alter Teppich im Serverraum: irgendwann stolpert jemand darüber und keiner weiß mehr, warum er da liegt. 20. Proxmox Webproxy neu starten systemctl restart pveproxy Danach im Browser: Mit Strg + F5 hart neu laden oder Browser-Cache leeren oder privates Fenster öffnen Wenn weiterhin gelbe Warnungen unter Updates → Repositories erscheinen, ist das nicht das Subscription-Popup. Diese Warnungen kommen von der Repository-Konfiguration und bleiben bei no-subscription-Repos teilweise normal. 21. Änderung rückgängig machen Falls die Weboberfläche Probleme macht: cp -a /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js.bak /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js systemctl restart pveproxy Alternativ Paket neu installieren: apt install --reinstall proxmox-widget-toolkit systemctl restart pveproxy 22. Nach Updates erneut prüfen Wenn proxmox-widget-toolkit aktualisiert wird, kann der Patch überschrieben werden. Danach kann das Popup wieder erscheinen. Prüfen: apt list --upgradable dpkg -l proxmox-widget-toolkit Falls nötig, den Patch erneut setzen. Beispiel: Saubere minimale Repository-Struktur 23. /etc/apt/sources.list # Debian repositories are managed in: # /etc/apt/sources.list.d/debian.sources # # This file is intentionally left without active repository entries. 24. /etc/apt/sources.list.d/debian.sources Types: deb URIs: http://deb.debian.org/debian/ Suites: trixie trixie-updates Components: main contrib non-free non-free-firmware Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg Types: deb URIs: http://security.debian.org/debian-security/ Suites: trixie-security Components: main contrib non-free non-free-firmware Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg 25. /etc/apt/sources.list.d/proxmox.sources Types: deb URIs: http://download.proxmox.com/debian/pve Suites: trixie Components: pve-no-subscription Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg Architectures: amd64 26. /etc/apt/sources.list.d/pve-enterprise.sources Types: deb URIs: https://enterprise.proxmox.com/debian/pve Suites: trixie Components: pve-enterprise Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg Enabled: no 27. /etc/apt/sources.list.d/ceph.sources ohne aktive Ceph-Nutzung Types: deb URIs: http://download.proxmox.com/debian/ceph-squid Suites: trixie Components: no-subscription Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg Architectures: amd64 Enabled: no 28. /etc/apt/sources.list.d/ceph.sources mit aktiver Ceph-Nutzung Types: deb URIs: http://download.proxmox.com/debian/ceph-squid Suites: trixie Components: no-subscription Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg Architectures: amd64 Kontrollbefehle apt update apt full-upgrade dpkg --audit pveversion uname -r systemctl status pveproxy --no-pager systemctl status pvedaemon --no-pager systemctl status pve-cluster --no-pager Erwartung: apt update läuft ohne Enterprise-Fehler durch. Keine doppelten Debian-Repositories. Keine falschen Suites wie bookworm auf einem trixie-System. dpkg --audit gibt nichts aus. pveproxy, pvedaemon und pve-cluster laufen. Das Subscription-Popup erscheint nach dem Patch nicht mehr. Zusammenfassung Debian-Repositories wurden aus /etc/apt/sources.list entfernt und sauber in debian.sources gepflegt. Doppelte Debian-Einträge wurden beseitigt. Das Proxmox Enterprise Repository wurde deaktiviert. Das kostenlose pve-no-subscription Repository wurde aktiviert. Das Ceph Repository wurde je nach Nutzung aktiviert oder deaktiviert. Das Subscription-Popup wurde durch Ersetzen von checked_command in proxmoxlib.js deaktiviert. Gelbe Repository-Warnungen für no-subscription sind bei kostenloser Nutzung normal und nicht dasselbe wie das Subscription-Popup.