방금 python-pip를 사용하여 패키지를 업데이트했습니다. 두 명의 다른 사용자가 서로 다른 버전의 바이너리를 얻습니다.
andrew$ which aws
/usr/bin/aws
andrew$ /usr/bin/aws --version
aws-cli/1.16.194 Python/3.5.2 Linux/4.4.0-1087-aws botocore/1.12.184
andrew$ sudo su tomcat
tomcat$ which aws
/usr/bin/aws
tomcat$ /usr/bin/aws --version
aws-cli/1.11.13 Python/3.5.2 Linux/4.4.0-1087-aws botocore/1.4.70
이는 Tomcat 사용자로 실행되는 애플리케이션과 명령줄에서 발생합니다. 오늘 (을 사용하여) 1.11에서 1.16으로 업그레이드했지만 pip3 install --upgrade pip awscli
Tomcat 사용자는 여전히 이전 버전을 사용하고 있습니다. apache-tomcat 서버를 다시 시작하고 로그아웃했다가 다시 로그인했습니다(아직 서버를 다시 시작하지 않았지만). Linux에서 한 사용자에게는 프로그램을 캐시하고 다른 사용자에게는 캐시하지 않는 것이 가능합니까?
의견에 따르면 두 사용자의 환경이 서로 다른 것으로 생각됩니다. 즉, Python이 awscli.clidriver를 가져올 때 버전이 다르다는 의미입니다. 하지만 전 세계적으로 어떻게 찾거나 고치나요? 데비안 스트레치/SID, x86_64
답변1
이것은 pip 환경 문제입니다. 처음 몇 번 시도했을 때 문제를 해결하는 단계가 작동하지 않는다고 확신했기 때문에 잘 이해하지 못했습니다. 하지만 두 명의 사용자가 되자 sudo apt-get remove awscli
결국에는 원하는 대로 설치되었습니다.pip3 uninstall awscli
sudo pip3 install awscli
수십 개의 pip 질문과 답변을 읽은 후 내가 아는 것은 다양한 버전의 pip가 --user 및 sudo 권한과 어떻게 상호 작용하는지 이해하지 못한다는 것입니다. 내 답변이 올바른 것으로 표시되지는 않지만 다른 답변을 기꺼이 고려해 보겠습니다.