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

您可以尝试通过第二个(或第三个)命令的完整路径调用它来更新您的证书 - 即/usr/bin/certbot

如果此方法有效,您可以安全地删除过时的可执行文件/usr/local/bin/certbot,该文件可能是在您遵循某些您现在不记得的指南时很久以前安装的:)

相关内容