Startseite
» Gewusst wie
»
SLES Zypper HTTP 500: Ermitteln Sie das fehlerhafte Repository
SLES Zypper HTTP 500: Ermitteln Sie das fehlerhafte Repository
Wenn zypper refreshunter SLES ein HTTP-500-Fehler gemeldet wird, ermitteln Sie zunächst die Repository-URL, von der er stammt. HTTP 500 bedeutet, dass der Server, der die Anfrage verarbeitet, auf einen unerwarteten Fehler gestoßen ist. Der antwortende Server kann der Repository-Host, der RMT-Server einer Organisation oder ein HTTP-Proxy sein. Isolieren Sie das fehlerhafte Repository und reparieren oder melden Sie den entsprechenden Endpunkt, bevor Sie die lokalen Metadaten löschen. Ein erzwungener Cache-Neuaufbau kann einen Server, der weiterhin den Fehler 500 zurückgibt, nicht reparieren.
Die aktuellen Administrations- und Upgrade-Handbücher von SUSE für SLES 15 SP7 beschreiben Befehle zum Auflisten und Aktualisieren von Repositories, einschließlich solcher zypper refresh -fdbzum Neuerstellen lokaler Repository-Metadaten. Sie gehen nicht auf einen aktuellen SLES-weiten HTTP-500-Vorfall ein. Die praktische Lösung hängt davon ab, ob die URL zum SUSE Customer Center, einem internen Spiegelserver oder einem Drittanbieter-Repository gehört.
Ist nur ein Repository ausgefallen oder mehrere?
Beginnen Sie mit dem Aufzeichnen des Repository-Alias und der URL. Führen Sie unter SLES Folgendes aus:
zypper repos -u
Diese -uOption zeigt den Ursprung jedes konfigurierten Repositorys an. Notieren Sie sich, welche Einträge aktiviert und auf Aktualisierung eingestellt sind, und vergleichen Sie anschließend die Hostnamen der fehlerhaften URLs. Falls ein Drittanbieter-Repository fehlschlägt, während die Aktualisierung der SUSE-Updatequellen erfolgreich ist, ermitteln Sie den Inhaber dieses Repositorys. Falls mehrere Repositories auf denselben internen Host verweisen und alle fehlschlagen, ist der gemeinsame Spiegelserver, der RMT-Dienst, der Reverse-Proxy oder dessen Upstream-Verbindung ein vielversprechenderer Anhaltspunkt.
Terminalbefehl zum Auflisten von Repository-Aliasen und deren konfigurierten Quell-URLs vor der Fehlerbehebung.
Aktualisieren Sie anschließend nur das betroffene Repository über den Alias:
sudo zypper refresh -f 'Vendor-App'
Ersetzen Sie Vendor-App<alias> durch den exakten Alias, der von <alias> angezeigt wird zypper repos -u. Dadurch vermeiden Sie eine wiederholte Fehlermeldung von nicht zusammenhängenden Repositories und erhalten ein aussagekräftiges Ergebnis, das Sie dem Administrator mitteilen können. Enthält der Alias Leerzeichen, behalten Sie die einfachen Anführungszeichen bei. Notieren Sie die genaue URL und den Zeitstempel des Fehlers, entfernen Sie jedoch alle eingebetteten Benutzernamen, Passwörter, Token oder andere vertrauliche Informationen, bevor Sie Protokolle oder Screenshots senden.
Terminalbefehl zum Aktualisieren eines Repository-Alias, um festzustellen, ob der HTTP-500-Fehler auf diese Quelle beschränkt ist.
Gibt der Metadaten-Endpunkt selbst einen HTTP-500-Fehler zurück?
Lesen Sie die vollständige Zypper-Fehlermeldung und ermitteln Sie die darin genannte Metadaten-URL, häufig eine Datei im Verzeichnis des Repositorys repodata. Wenn der Endpunkt ohne Anmeldeinformationen abgefragt werden kann, vergleichen Sie die HTTP-Antwort vom SLES-Host:
Setzen Sie den METADATA_URLBefehl auf die exakte URL der fehlerhaften Metadaten, ohne Anmeldeinformationen in der URL oder der Befehlszeile anzugeben. Der Befehl gibt die Antwort-Header aus und verwirft den Antworttext. Ein Ergebnis wie dieses HTTP/1.1 500bestätigt, dass ein Server im Anfragepfad einen Fehler zurückgibt; es beweist jedoch nicht, ob der Ursprungsserver oder ein Zwischenserver den Fehler verursacht hat. Curl verwendet möglicherweise andere Authentifizierungs- oder Proxy-Einstellungen als Zypper. Betrachten Sie dies daher als Vergleich, nicht als definitive Reproduktion. Wenn der Zugriff auf das Repository eine Authentifizierung erfordert, verwenden Sie die von Ihrer Organisation genehmigte Testmethode, anstatt Anmeldeinformationen preiszugeben.
Terminalbefehl zum Überprüfen der HTTP-Antwort vom exakten Repository-Metadaten-Endpunkt, der von Zypper gemeldet wird.
Eine 500-Fehlermeldung unterscheidet sich von einem Problem mit dem lokalen Metadaten-Cache. Sie ist auch nicht zu verwechseln mit DNS-Fehlern, TLS-Zertifikatfehlern, Timeouts und Authentifizierungsantworten wie 401 oder 403. Diese Meldungen erfordern andere Prüfungen. Deaktivieren Sie nicht die TLS-Verifizierung, stellen Sie das Repository nicht auf unverschlüsseltes HTTP um und löschen Sie nicht wiederholt Caches, um eine 500-Fehlermeldung zu beheben. Gemäß RFC 9110 (HTTP-Semantik) bezeichnet die 500-Fehlermeldung einen unerwarteten Serverzustand, der die Bearbeitung der Anfrage verhindert hat.
Wo sollten Sie die Reparatur vornehmen?
SUSE Customer Center-Repositories: Versuchen Sie es nach kurzer Zeit erneut, falls der Fehler nur vorübergehend auftritt. Sollte derselbe von SUSE gehostete Endpunkt weiterhin den HTTP-Statuscode 500 zurückgeben, notieren Sie sich Produkt, Service Pack, Architektur, Repository-URL und Zeitpunkt des Fehlers und wenden Sie sich anschließend an den SUSE-Support Ihrer Organisation. Überprüfen Sie die Registrierungs- und Abonnementdetails, falls die Antwort auf ein Berechtigungs- oder Zugriffsproblem hinweist; ein HTTP-Statuscode 500 allein bedeutet nicht zwangsläufig, dass das Abonnement ungültig ist.
RMT oder ein anderer interner Spiegelserver: Bitten Sie den Spiegelserver-Administrator, die Server- und Reverse-Proxy-Protokolle zum angegebenen Zeitpunkt zu überprüfen, zu bestätigen, dass das angeforderte Repository aktiviert und synchronisiert ist, und zu verifizieren, dass die Metadatendatei unter dem angegebenen Pfad vorhanden ist. SUSE dokumentiert RMT als Möglichkeit für SLES-Clients, Updates von einem lokalen Server abzurufen, anstatt SCC direkt zu kontaktieren.
Repository eines Drittanbieters: Prüfen Sie die aktuellen Anweisungen des Anbieters und stellen Sie sicher, dass die URL mit der installierten SLES-Version und -Architektur übereinstimmt. Falls die Quelle verschoben wurde, aktualisieren Sie sie ausschließlich auf eine vom Anbieter veröffentlichte URL. Deaktivieren Sie ein Repository erst, nachdem Sie sichergestellt haben, dass es optional und nicht mehr benötigt wird. Deaktivieren Sie keine erforderliche SLES-Updatequelle, um den Fehler zu verbergen.
Sie können den Repository-Status mit Zypper oder YaST überprüfen und ändern. Beispielsweise zypper modifyrepokann der dokumentierte Befehl ein Repository über einen Alias deaktivieren. Dies ist jedoch nur eine temporäre Maßnahme und keine dauerhafte Lösung für eine fehlerhafte, benötigte Quelle. Vermeiden Sie es, generierte Repository-URLs auf gut Glück zu bearbeiten, insbesondere nach einer Service-Pack-Migration, da Produkt- und Update-Repositories versionsspezifische Pfade verwenden.
Wann sollte der lokale Metadaten-Cache neu erstellt werden?
Erst wenn der Server oder Proxy eine gültige Antwort zurückgibt, sollten Sie alle aktivierten Repositories erneut versuchen:
sudo zypper refresh -f
Terminalbefehl zum erneuten Versuch einer erzwungenen Aktualisierung, nachdem der Repository-Endpunkt wieder fehlerfrei funktioniert.
Wenn der Endpunkt nun antwortet, Zypper aber weiterhin veraltete oder inkonsistente lokale Repository-Daten meldet, empfiehlt der Abschnitt zur Fehlerbehebung von SLES 15 SP7 von SUSE eine vollständige Aktualisierung der Metadaten und einen Neuaufbau der Datenbank mit:
sudo zypper refresh -fdb
Dies erzwingt das Herunterladen der Rohmetadaten und den Neuaufbau der lokalen, auflösbaren Datenbank von Zypper. Es ist hilfreich bei Problemen mit den lokalen Metadaten; es behebt jedoch keine anhaltenden 500-Fehler. Verwechseln Sie das Aktualisieren der Repository-Metadaten nicht mit der Installation von Updates: Führen Sie Ihren normalen Patch- oder Update-Befehl erst aus, nachdem die Aktualisierung erfolgreich abgeschlossen wurde.
Wie überprüft man die Fehlerbehebung?
Führen Sie den Vorgang zypper refresh -f 'ALIAS'zunächst für die zuvor fehlerhafte Quelle und anschließend sudo zypper refresh -ffür alle aktivierten Repositories aus. Die Korrektur ist bestätigt, wenn die Metadaten des betroffenen Repositorys ohne HTTP-500-Fehler heruntergeladen werden und Zypper ohne fehlerhafte aktivierte Quelle abgeschlossen ist. Falls eine Quelle weiterhin fehlschlägt, notieren Sie sich die genaue URL, den Statuscode, die Antwortheader und die Uhrzeit und übermitteln Sie diese dem Inhaber des entsprechenden Endpunkts.