certbot 및 awscli에는 다른 버전의 botocore가 필요합니다.

certbot 및 awscli에는 다른 버전의 botocore가 필요합니다.

갱신해야 할 때마다 새로운 Let's Encrypt 인증서를 생성한 다음 새 인증서를 AWS 계정으로 가져와 이를 사용하여 사용자 지정 하위 도메인에 대한 Cloudfront 요청에 서명하는 작은 스크립트가 있습니다.

다른 서버에서는 이 문제가 발생하지 않았지만 여기 지침에 따라 certbot을 설치했을 때https://certbot.eff.org/all-instructions/#debian-9-stretch-apache, 인증서를 성공적으로 생성할 수 있습니다.

그런 다음 awscli를 사용하여 설치할 때 pip install awscli --upgrade --useraws 명령을 실행하여 인증서를 가져올 수도 있습니다.

하지만 돌아가서 certbot 갱신을 실행하면 이 오류가 발생합니다.

예기치 않은 오류가 발생했습니다: ContextualVersionConflect: (botocore 1.7.47 (/root/.local/lib/python2.7/site-packages), Requirement.parse('botocore<1.6.0,>=1.5.0'), set ( ['boto3']))

botocore를 버전 1.5.95(확실히 지원되는 가장 높은 certbot 버전)로 강제 설치하면 certbot은 제대로 작동하지만 awscli에서 이 오류가 발생합니다.

역추적(마지막 호출): 파일 "/root/.local/bin/aws", 19행, import awscli.clidriver 파일 "/root/.local/lib/python2.7/site-packages/awscli/ clidriver.py ", 24행, from botocore.history import get_global_history_recorder ImportError: History라는 모듈이 없습니다.

어떻게 되어가나요? 버전 1.7.47의 다른 botocore 서버에서는 작동하지만 이 서버에서는 작동하지 않는 이유는 무엇입니까?

답변1

비슷한 문제가 있습니다.

sudo certbot certonly  --dns-route53  -d example.com
An unexpected error occurred:
VersionConflict: (botocore 1.10.58 (/usr/lib/python2.7/site-packages), 
Requirement.parse('botocore>=1.6.0,<1.7.0'))

귀하의 게시물이 제가 찾는 데 도움이 되었습니다https://github.com/venth/aws-adfs/issues/52이 문제를 해결하려면 pip uninstall botocore boto3 && pip install boto3를 사용하는 것이 좋습니다.

sudo pip uninstall botocore boto3 && sudo pip install boto3 

내 장치의 문제를 해결했습니다.

관련 정보