Проблема с Certbot после обновления Ubuntu до 22.04

Проблема с Certbot после обновления Ubuntu до 22.04

У меня возникла проблема с Certbot после обновления до Ubuntu 22.04. Я пытался переустановить Certbot, но безуспешно. Затем я попытался установить Certbot с помощью snap, и у меня та же проблема:

 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/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, который, вероятно, был установлен давным-давно, когда вы следовали какому-то руководству, которое сейчас не можете вспомнить :)

Связанный контент