** Description changed:

  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. 
+ 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:
  
- 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 
+ ➜  ~ 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
+   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
+ 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
+  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))   
+ (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'
+ 
+ 
+ A workaround is:
+ 
+ sudo rm /usr/bin/python
+ sudo ln -s /usr/bin/python2.7 /usr/bin/python
+ do-release-upgrade

** Description changed:

- do-release-upgrade from 18.04 to 18.10 fails:
+ do-release-upgrade from 18.04 to 18.10 fails (likewise, when I upgraded
+ with a workaround the same happened for 18.10 -> 19.04):
  
  "
  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'
  
- 
  A workaround is:
  
  sudo rm /usr/bin/python
  sudo ln -s /usr/bin/python2.7 /usr/bin/python
  do-release-upgrade

-- 
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
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to