升级到 Ubuntu 20.04 时出现“sudo update-manager -d”错误

升级到 Ubuntu 20.04 时出现“sudo update-manager -d”错误

我无法从 18.04 升级到 Ubuntu 20.04。当我运行 时sudo update-manager -d,它显示错误。我在 Ubuntu 升级中断后看到此错误。

sh@sh-Lff:~$ update-manager -d
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/UpdateManager/backend/InstallBackendAptdaemon.py", line 239, in _on_finished
    trans_failed=trans_failed)
  File "/usr/lib/python3/dist-packages/UpdateManager/backend/__init__.py", line 319, in _action_done
    self.window_main.duplicate_packages = self.get_deb2snap_dups()
  File "/usr/lib/python3/dist-packages/UpdateManager/backend/__init__.py", line 125, in get_deb2snap_dups
    if (deb in cache and cache[deb].is_installed):
  File "/usr/lib/python3/dist-packages/apt/cache.py", line 350, in __contains__
    return self.__is_real_pkg(self._cache[key])
TypeError: Expected a string or a pair of strings

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/UpdateManager/backend/InstallBackendAptdaemon.py", line 246, in _on_finished
    error_string=error_string, error_desc=error_desc)
  File "/usr/lib/python3/dist-packages/UpdateManager/backend/__init__.py", line 319, in _action_done
    self.window_main.duplicate_packages = self.get_deb2snap_dups()
  File "/usr/lib/python3/dist-packages/UpdateManager/backend/__init__.py", line 125, in get_deb2snap_dups
    if (deb in cache and cache[deb].is_installed):
  File "/usr/lib/python3/dist-packages/apt/cache.py", line 350, in __contains__
    return self.__is_real_pkg(self._cache[key])
TypeError: Expected a string or a pair of strings

遵循的步骤:

sudo apt-get update
sudo apt-get upgrade
sudo update-manager -d

运行命令后,我的更新进度很好,但电池没电了,系统关机了,我再次执行上述步骤并开始看到问题

我使用以下命令更新了默认版本:

sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 20

更新后,当我使用 检查 Python 版本时python --version,我看到了Python 2.7.17

答案1

我遇到了这个问题并将分享我如何解决这个问题。

问题源于某些 ubuntu 软件包阻止了 20.04 的完整 ubuntu 软件包更新。因此,当我运行:

sudo apt list --upgradable

它显示了一个很大的软件包列表,特别是 python3 软件包列表,尽管我刚刚升级(因此没有什么是“更”可升级的)。

其中一个是 2to3 包,所以我尝试运行

sudo apt install 2to3

其中提到了一些阻止安装的软件包。对我来说,这很麻烦mutterpython-gi— 我sudo apt remove完成了这些,并立即更新了一堆软件包。

然后我就跑了

sudo apt upgrade

并且它升级了一堆“被阻止”的软件包。然后,我运行它sudo update-manager,它能够从之前死机的地方重新开始运行——它最终报告了阻止升级的软件包(对我来说postgresql-10-postgis-2 .4),所以我sudo apt remove就这么做了。

然后,运行sudo update-manager使我能够继续前进,并且我能够完成运行“部分升级”。python--version 终于报告了。

这可能不是关于如何修复它或您自己修复它的简明说明,但希望它会有所帮助。

相关内容