Public bug reported:

do-release-upgrade from 18.04 to 18.10 fails:

"
Reading cache

Checking package manager

Can not upgrade

Your python3 install is corrupted. Please fix the '/usr/bin/python3' 
symlink. 
=== Command terminated with exit status 1 (Sat Apr 20 17:19:49 2019) ===
"

There is nothing wrong with /usr/bin/python3

➜  ~ ls -al /usr/bin/python3
lrwxrwxrwx 1 root root 9 окт 25 14:11 /usr/bin/python3 -> python3.6


I also have python2 installed for which Debian alternatives are configured 
which causes the problem as far as I can see:

➜  ~ update-alternatives --display python 
python - auto mode
  link best version is /usr/bin/python2.7
  link currently points to /usr/bin/python2.7
  link python is /usr/bin/python
/usr/bin/python2.7 - priority 100


https://git.launchpad.net/ubuntu/+source/ubuntu-release-upgrader/tree/DistUpgrade/DistUpgradeController.py?h=ubuntu/bionic-updates#n361

(Pdb) l
 11             debian_defaults = '/usr/share/%s/debian_defaults' % dirname
 12             if os.path.exists(debian_defaults):
 13                 config = SafeConfigParser()
 14                 with open(debian_defaults) as f:
 15                     config.readfp(f)
 16  ->             try:
 17                     expected_default = config.get('DEFAULT', 
'default-version')
 18                 except NoOptionError:
 19                     logging.debug("no default version for %s found in '%s'" 
%
 20                                   (binary, config))
 21                     return False
(Pdb) n
> <ipython-input-13-93c4105e7796>(17)_pythonSymlinkCheck()
-> expected_default = config.get('DEFAULT', 'default-version')
(Pdb) n
> <ipython-input-13-93c4105e7796>(22)_pythonSymlinkCheck()
-> try:
(Pdb) expected_default
'python2.7'


> <ipython-input-13-93c4105e7796>(23)_pythonSymlinkCheck()
-> fs_default_version = os.readlink('/usr/bin/%s' % binary)
(Pdb) n
> <ipython-input-13-93c4105e7796>(27)_pythonSymlinkCheck()
-> if not fs_default_version in (expected_default, os.path.join('/usr/bin', 
expected_default))                     and not (binary == 'python' and 
fs_default_version in ('python2', '/usr/bin/python2')):
(Pdb) fs_default_version
'/etc/alternatives/python'
(Pdb) os.path.join('/usr/bin', expected_default)
'/usr/bin/python2.7'


(Pdb) not fs_default_version in (expected_default, os.path.join('/usr/bin', 
expected_default))   
True

(Pdb) print("%s symlink points to: '%s', but expected is '%s' or '%s'" % 
(binary, fs_default_version, expected_default, os.path.join('/usr/bin', 
expected_default)))
python symlink points to: '/etc/alternatives/python', but expected is 
'python2.7' or '/usr/bin/python2.7'

** Affects: ubuntu-release-upgrader (Ubuntu)
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1825655

Title:
  do-release-upgrade fails with "Your python3 install is corrupted" if
  /usr/bin/python points to /etc/alternatives/python

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/ubuntu-release-upgrader/+bug/1825655/+subscriptions

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to