Problema com Certbot após atualização do Ubuntu para 22.04

Problema com Certbot após atualização do Ubuntu para 22.04

Tenho um problema com o Certbot após atualizar para o Ubuntu 22.04. Tentei reinstalar o Certbot sem sucesso. Então tentei instalar o Certbot com snap e estou com o mesmo problema:

 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

Não consigo renovar certificados para meus domínios. Como posso resolver isto?

Responder1

Na mensagem de erro fornecida na pergunta, notei que o executável problemático do Certbot é /usr/local/bin/certbot.

Normalmente os arquivos executáveis ​​localizados /usr/local/binsão uma espécie depersonalizadoinstalações e elas têm precedência sobre aquelas instaladas pelos gerenciadores de pacotes, devido à estrutura padrão da $PATHvariável - para verificá-la execute:

echo $PATH

Por outro lado, os pacotes instalados aptpodem ser encontrados em outros diretórios como /usr/binou /usr/sbin, ou /bin, ou /snap/binpara os snappacotes, etc.

Portanto, versões diferentes de um comando (com o mesmo nome) podem existir em diretórios diferentes que pertencem ao seu arquivo $PATH. Para descobrir qual deles tem precedência sobre os outros você pode usar o comando:

which certbot

Para encontrar a localização de todos os arquivos executáveis ​​nomeados certbotnos diretórios, $PATHuse o comando:

which -a certbot

Num caso, o comando acima gera mais de uma linha - por exemplo:

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

Você pode tentar renovar seus certificados pelo segundo (ou terceiro) comando chamando-o com seu caminho completo - ou seja /usr/bin/certbot, .

Se isso funcionar, você pode remover com segurança o executável obsoleto /usr/local/bin/certbotque provavelmente foi instalado há muito tempo, enquanto você seguiu algum guia do qual não consegue se lembrar agora :)

informação relacionada