Ubuntu 16.04.5 LTS에서 18.04로 업그레이드하고 싶었습니다 sudo do-release-upgrade
. 다운로드 및 추출 후 다음을 bionic.tar.gz
얻습니다.
Can not upgrade
Your python3 install is corrupted. Please fix the '/usr/bin/python3'
symlink.
나는 보았다 “파이썬 설치가 손상되었습니다”해결 방법? 그래서 sudo ln -sf /usr/bin/python3.6 /usr/bin/python3
비슷한 문제가 될 것이라고 생각했습니다. 그러나 그것은 작동하지 않았습니다 (여전히 같은 오류 메시지).
몇 가지 파이썬 버전이 있습니다.
$ ls /usr/lib | grep python
python2.7
python3
python3.5
python3.6
$ update-alternatives --display python3
python3 - auto mode
link best version is /usr/bin/python3.6
link currently points to /usr/bin/python3.6
link python3 is /usr/bin/python3
/usr/bin/python3.5 - priority 1
/usr/bin/python3.6 - priority 2
어떻게 수정 python3
합니까?
답변
16.04의 기본 Python 3 버전을 사용해야합니다. 그건 3.5 이 아닌 3.6. 그래서 실행하십시오 :
sudo ln -sf /usr/bin/python3.5 /usr/bin/python3
그래도 문제가 해결되지 않으면 python3
패키지를 다시 설치하십시오 .
sudo apt-get install --reinstall python3
그건 그렇고, update-alternatives --display python3
당신에게 줘야합니다 update-alternatives: error: no alternatives for python3
. 우분투에서는 다른 버전의 파이썬이 대안이 아닙니다.
답변
방금 Pop! _OS 18.04 에서이 문제가 발생하여 18.10으로 업그레이드하려고했는데 문제가에 대한 심볼릭 링크가 /usr/bin/python
아닌 심볼릭 링크에 있음이 밝혀졌습니다 /usr/bin/python3
. 나는 (not ) /usr/bin/python3.6
의 대안으로 구성했으며, 이것을 변경했을 때 예상대로 실행할 수 있습니다 .python
python3
do-release-upgrade
나는 오류 메시지가 지적하고자 python
하지 python3
.
문제가 발생하기 전에 :
$ update-alternatives --display python
python - manual mode
link best version is /usr/bin/python3.6
link currently points to /usr/bin/python2.7
link python is /usr/bin/python
/usr/bin/python2.7 - priority 1
/usr/bin/python3.6 - priority 2
나는 이것을 이렇게 고쳤다.
$ sudo update-alternatives --remove-all python
$ sudo ln -sf /usr/bin/python2.7 /usr/bin/python
또한 진행 상황과 해결 방법을 더 잘 설명하는보다 정확한 솔루션을 설명하는 아래 주석을 참조하십시오 .
답변
16.04 LTS 에서 18.04 LTS 로 업그레이드하려고 할 때 WSL Ubuntu를 실행 하는 Windows 10 1903 에서이 오류 메시지 가 나타 났습니다 .
do-release-upgrade
실패한 후 , 나는 python
모든 대안을 대안으로 바꾸고 update-alternatives --config python
업그레이드 명령을 다시 실행했다. 도움이되지 못했습니다.
그런 다음 /var/log/dist-upgrade/main.log
줄이 포함 된 로그 파일 을 확인했습니다.
2019-09-02 20:58:08,686 DEBUG _pythonSymlinkCheck run
2019-09-02 20:58:08,687 DEBUG python symlink points to: '/etc/alternatives/python', but expected is 'python2.7' or
'/usr/bin/python2.7'
2019-09-02 20:58:08,688 ERROR pythonSymlinkCheck() failed, aborting
따라서 오류 메시지에 python3이 언급되어 있지만 문제는 python2 입니다.
업그레이드 스크립트는에 대한 /usr/bin/python
링크를 /usr/bin/python2
확인합니다. 소스 코드 참조 DistUpgrade/DistUpgradeController.py
: 우분투 런치 패드
따라서 가장 인기있는 답변에 설명 된 것처럼 대안 시스템에서 파이썬을 완전히 제거하고 링크를 수동으로 추가하는 것이 하나의 해결책입니다.
대체 시스템에서 파이썬을 제거하지 않으려면 업그레이드 프로세스 중 시간 동안 만 링크를 변경하십시오.
# rm /usr/bin/python
# ln -sf /usr/bin/python2.7 /usr/bin/python
# do-release-upgrade
이것은 나를 위해 일했습니다.
업그레이드 프로세스 중에 링크가 자동으로 복구됩니다. 따라서 업그레이드가 완료되면 alternatives 디렉토리의 python 항목을 가리 킵니다.
$ ls -l /usr/bin/python
lrwxrwxrwx 1 root root 24 Sep 2 22:01 /usr/bin/python -> /etc/alternatives/python
편집 : 철저한 정보를 위해 18.04 LTS에서 19.04로 업그레이드하고 응답자 가이 상황에도 적용되는 경우에도 문제가 나타날 수 있습니다.
답변
기본적 으로이 문제에 대한 솔루션은 /usr/bin/python
우분투 릴리스가 기대하는 올바른 버전의 Python 을 가리 키는 것으로 구성됩니다 (예 : 16.04에서는 Python2.7이고 18.04에서는 Python3.6입니다).
시스템에 여러 버전의 Python이 설치되어 있으면이 update-alternatives
를 관리하는 데 사용할 수 있습니다. 파이썬의 기본 대안은 시스템이 기대하는 올바른 버전 (Ubuntu 18.04의 3.6)이면 문제가되지 않습니다.
이없는 작업을 수행하는 이유는, 사용하고 update-alternatives
, /usr/bin/python3
포인트 /etc/alternatives/python3
, 그리고는 정확히 만들기와 동일하지 것 같다 /usr/bin/python3
에 지점을 /usr/bin/python3.6
.
그렇기 때문에이 문제에 대한 해결책은 종종 Python3 버전 관리를 중단하고 시스템이 기대하는 올바른 버전의 Python3 update-alternatives
을 /usr/bin/python3
가리 키도록 구성되는 이유입니다.