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이것이 작동한다면, 지금은 기억할 수 없는 몇 가지 가이드를 따랐지만 아마도 오래 전에 설치되었을 수 있는 오래된 실행 파일을 안전하게 제거할 수 있습니다 . :)

관련 정보