Problem mit Certbot nach Ubuntu-Upgrade auf 22.04

Problem mit Certbot nach Ubuntu-Upgrade auf 22.04

Ich habe ein Problem mit Certbot nach dem Upgrade auf Ubuntu 22.04. Ich habe erfolglos versucht, Certbot neu zu installieren. Dann habe ich versucht, Certbot mit Snap zu installieren, und ich habe das gleiche Problem:

 certbot --version
Traceback (most recent call last):
  File "/usr/local/bin/certbot", line 33, in <module>
    sys.exit(load_entry_point('certbot', 'console_scripts', 'certbot')())
  File "/usr/local/bin/certbot", line 22, in importlib_load_entry_point
    for entry_point in distribution(dist_name).entry_points
  File "/usr/lib/python3.10/importlib/metadata/__init__.py", line 957, in distribution
    return Distribution.from_name(distribution_name)
  File "/usr/lib/python3.10/importlib/metadata/__init__.py", line 548, in from_name
    raise PackageNotFoundError(name)
importlib.metadata.PackageNotFoundError: No package metadata was found for certbot

Ich kann die Zertifikate für meine Domänen nicht erneuern. Wie kann ich das Problem lösen?

Antwort1

In der in der Frage bereitgestellten Fehlermeldung ist mir aufgefallen, dass die problematische ausführbare Datei von Certbot lautet /usr/local/bin/certbot.

Normalerweise sind die ausführbaren Dateien in /usr/local/bineine ArtBrauchInstallationen und sie haben Vorrang vor denen, die von den Paketmanagern installiert wurden, aufgrund der Standardstruktur der $PATHVariable - um dies zu überprüfen, führen Sie Folgendes aus:

echo $PATH

Andererseits aptkönnten mit installierte Pakete in anderen Verzeichnissen wie /usr/binoder /usr/sbin, oder /bin, oder /snap/binfür die snapPakete usw. gefunden werden.

Daher können verschiedene Versionen eines Befehls (mit demselben Namen) in verschiedenen Verzeichnissen vorhanden sein, die zu Ihrem gehören $PATH. Um herauszufinden, welche Version Vorrang vor den anderen hat, können Sie den folgenden Befehl verwenden:

which certbot

Um die Speicherorte aller ausführbaren Dateien certbotin den Verzeichnissen zu finden $PATH, verwenden Sie den folgenden Befehl:

which -a certbot

In einem Fall gibt der obige Befehl mehr als eine Zeile aus – zum Beispiel:

/usr/local/bin/certbot
/usr/bin/certbot
/bin/certbot

Sie können versuchen, Ihre Zertifikate mit dem zweiten (oder dritten) Befehl zu erneuern, indem Sie ihn mit dem vollständigen Pfad aufrufen, d. h /usr/bin/certbot.

Wenn dies funktioniert, können Sie die veraltete ausführbare Datei sicher entfernen. /usr/local/bin/certbotDiese wurde wahrscheinlich vor langer Zeit installiert, während Sie einer Anleitung gefolgt sind, an die Sie sich gerade nicht erinnern können :)

verwandte Informationen