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/bin/usr/sbin/bin/snap/binsnap

そのため、コマンドの異なるバージョン (同じ名前) が、 に属する異なるディレクトリに存在する可能性があります$PATH。どれが他のものより優先されるかを確認するには、次のコマンドを使用します。

which certbot

certbotディレクトリ内で指定されたすべての実行可能ファイルの場所を見つけるには、$PATH次のコマンドを使用します。

which -a certbot

上記のコマンドが複数の行を出力する場合 - 例:

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

2 番目 (または 3 番目) のコマンドを完全なパスで呼び出すことで、証明書の更新を試みることができます (つまり、 ) /usr/bin/certbot

/usr/local/bin/certbotこれが機能する場合は、おそらくかなり前に何らかのガイドに従ってインストールされた、今は思い出せない古い実行ファイルを安全に削除できます:)

関連情報