[Bug 1825655] Re: do-release-upgrade fails with "Your python3 install is corrupted" if /usr/bin/python points to /etc/alternatives/python
Dmitrii Shcherbakov
1825655 at bugs.launchpad.net
Sat Apr 20 17:12:50 UTC 2019
** 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
Foundations Bugs, which is subscribed to ubuntu-release-upgrader in
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
Status in ubuntu-release-upgrader package in Ubuntu:
New
Bug description:
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
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/ubuntu-release-upgrader/+bug/1825655/+subscriptions
More information about the foundations-bugs
mailing list