Tengo un problema con Certbot después de actualizar a Ubuntu 22.04. Intenté reinstalar Certbot sin éxito. Luego intenté instalar Certbot con snap y tengo el mismo 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
No puedo renovar los certificados de mis dominios. ¿Cómo puedo resolver esto?
Respuesta1
En el mensaje de error proporcionado en la pregunta, noté que el ejecutable problemático de Certbot es /usr/local/bin/certbot
.
Por lo general, los archivos ejecutables ubicados en /usr/local/bin
son una especie decostumbreinstalaciones y tienen prioridad sobre las instaladas por los administradores de paquetes, debido a la estructura predeterminada de la $PATH
variable; para verificarla, ejecute:
echo $PATH
Por otro lado, los paquetes instalados con apt
se pueden encontrar en otros directorios como /usr/bin
o /usr/sbin
, o /bin
, o /snap/bin
para los snap
paquetes, etc.
Por lo tanto, podrían existir diferentes versiones de un comando (con el mismo nombre) en diferentes directorios que pertenecen a su archivo $PATH
. Para saber cuál tiene prioridad sobre los demás, puedes utilizar el comando:
which certbot
Para encontrar las ubicaciones de todos los archivos ejecutables nombrados certbot
dentro de los directorios en el $PATH
uso del comando:
which -a certbot
En un caso, el comando anterior genera más de una línea, por ejemplo:
/usr/local/bin/certbot
/usr/bin/certbot
/bin/certbot
Puede intentar renovar sus certificados con el segundo (o tercer) comando llamándolo con su ruta completa, es decir, /usr/bin/certbot
.
Si esto funciona, puedes eliminar de forma segura el ejecutable obsoleto /usr/local/bin/certbot
que probablemente se instaló hace mucho tiempo mientras seguías alguna guía que no recuerdas en este momento :)