Ubuntu 升級到 22.04 後 Certbot 出現問題

Ubuntu 升級到 22.04 後 Certbot 出現問題

升級到 Ubuntu 22.04 後,我遇到了 Certbot 問題。我嘗試重新安裝 Certbot 但沒有成功。然後我嘗試用snap安裝Certbot,也遇到了同樣的問題:

 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

我無法為我的網域續訂憑證。我該如何解決這個問題?

答案1

在問題中提供的錯誤訊息中,我注意到有問題的 Certbot 的可執行檔是/usr/local/bin/certbot.

通常,可執行檔/usr/local/bin位於風俗安裝,並且它們優先於套件管理器安裝的安裝,因為變數的預設結構$PATH- 要檢查它運行:

echo $PATH

另一方面,安裝的軟體包apt可以在其他目錄中找到,例如/usr/binor /usr/sbin、 or /bin、 or/snap/bin軟體包snap等。

因此,不同版本的命令(具有相同的名稱)可能存在於屬於您的$PATH.要查找哪一個優先於其他,您可以使用以下命令:

which certbot

certbot若要尋找目錄中指定的所有可執行檔的位置,請$PATH使用下列命令:

which -a certbot

在某種情況下,上述命令會輸出多行 - 例如:

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

您可以嘗試透過第二個(或第三個)命令使用其完整路徑呼叫它來更新您的憑證 - 即/usr/bin/certbot

/usr/local/bin/certbot如果這有效,您可以安全地刪除可能是很久以前安裝的過時的可執行文件,而您已經遵循了一些您現在不記得的指南:)

相關內容