태그 보관물: do-release-upgrade

do-release-upgrade

“python3 설치가 손상되었습니다” LTS에서 18.04로 업그레이드하고 싶었습니다 sudo do-release-upgrade. 다운로드

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의 대안으로 구성했으며, 이것을 변경했을 때 예상대로 실행할 수 있습니다 .pythonpython3do-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가리 키도록 구성되는 이유입니다.


답변