将 ubuntu 18.04 升级到 20.04 但软件包仍然是 +bionic1

Posted

技术标签:

【中文标题】将 ubuntu 18.04 升级到 20.04 但软件包仍然是 +bionic1【英文标题】:upgrade ubuntu 18.04 to 20.04 but packages remain +bionic1 【发布时间】:2020-08-20 22:57:40 【问题描述】:

升级到 ubuntu 20.04 后,一些包仍保留在 +bionic1 版本中

sudo apt list | grep python3.8


WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

idle-python3.8/focal-updates,focal-updates,focal-security,focal-security 3.8.2-1ubuntu1.1 all
libpython3.8-dbg/focal-updates,focal-security 3.8.2-1ubuntu1.1 amd64
libpython3.8-dbg/focal-updates,focal-security 3.8.2-1ubuntu1.1 i386
libpython3.8-dev/focal-updates,focal-security 3.8.2-1ubuntu1.1 amd64
libpython3.8-dev/focal-updates,focal-security 3.8.2-1ubuntu1.1 i386
libpython3.8-minimal/now 3.8.2-1+bionic1 amd64 [installed,local]
libpython3.8-minimal/focal-updates,focal-security 3.8.2-1ubuntu1.1 i386
libpython3.8-stdlib/now 3.8.2-1+bionic1 amd64 [installed,local]
libpython3.8-stdlib/focal-updates,focal-security 3.8.2-1ubuntu1.1 i386
libpython3.8-testsuite/focal-updates,focal-updates,focal-security,focal-security 3.8.2-1ubuntu1.1 all
libpython3.8/focal-updates,focal-security 3.8.2-1ubuntu1.1 amd64
libpython3.8/focal-updates,focal-security 3.8.2-1ubuntu1.1 i386
python3.8-dbg/focal-updates,focal-security 3.8.2-1ubuntu1.1 amd64
python3.8-dbg/focal-updates,focal-security 3.8.2-1ubuntu1.1 i386
python3.8-dev/focal-updates,focal-security 3.8.2-1ubuntu1.1 amd64
python3.8-dev/focal-updates,focal-security 3.8.2-1ubuntu1.1 i386
python3.8-doc/focal-updates,focal-updates,focal-security,focal-security 3.8.2-1ubuntu1.1 all
python3.8-examples/focal-updates,focal-updates,focal-security,focal-security 3.8.2-1ubuntu1.1 all
python3.8-minimal/now 3.8.2-1+bionic1 amd64 [installed,local]
python3.8-minimal/focal-updates,focal-security 3.8.2-1ubuntu1.1 i386
python3.8-venv/focal-updates,focal-security 3.8.2-1ubuntu1.1 amd64
python3.8-venv/focal-updates,focal-security 3.8.2-1ubuntu1.1 i386
python3.8/now 3.8.2-1+bionic1 amd64 [installed,local]
python3.8/focal-updates,focal-security 3.8.2-1ubuntu1.1 i386

如您在上面看到的python3.8-minimal/now 3.8.2-1+bionic1 amd64 [installed,local] 保留在仿生版本,如果我想清除并安装 python3.8,那么许多依赖项也将被删除,这可能会导致我的操作系统崩溃我如何推动 ubuntu 切换所有安装 +bionic1 包转至焦点版本ubuntu1.1ubuntu1

【问题讨论】:

【参考方案1】:

最终,维护人员可能需要为 Python 包制作上游补丁,因为版本/纪元解析器显然认为前缀 -1+bionic1-1ubuntu1.1 更新。

在我的例子中,Python 3.8 的 -1+bionic1 前缀来自于从 deadsnakes PPA 安装 Python 3.8 包,而不是来自规范存储库。

也就是说,我可以使用以下命令强制“降级”到正确的 Ubuntu-Focal 软件包:

sudo apt install libpython3.8:amd64=3.8.2-1ubuntu1.1 libpython3.8-dev:amd64=3.8.2-1ubuntu1.1 libpython3.8-minimal:amd64=3.8.2-1ubuntu1.1 libpython3.8-stdlib:amd64=3.8.2-1ubuntu1.1 python3.8=3.8.2-1ubuntu1.1 python3.8-minimal=3.8.2-1ubuntu1.1

我在 18.04->20.04 系统升级后尝试安装其他 Python 库(如 python3-venv)时遇到了这个问题,这些包将它们的依赖项固定到 3.8.2-1ubuntu1.1 版本。

【讨论】:

要获取包名,使用命令:apt-cache showpkg python3.8,它会显示后缀名3.8.2-1ubuntu1【参考方案2】:

我在从 18.04 升级到 20.04 后安装 vim 时遇到了类似的问题。结合 pztrick 答案和 oon arfiandwi 对已接受答案的评论对我有用

sudo apt install libpython3.8:amd64=3.8.2-1ubuntu1 libpython3.8-dev:amd64=3.8.2-1ubuntu1 libpython3.8-minimal:amd64=3.8.2-1ubuntu1 libpython3.8-stdlib:amd64=3.8.2-1ubuntu1 python3.8=3.8.2-1ubuntu1 python3.8-minimal=3.8.2-1ubuntu1

【讨论】:

【参考方案3】:

运行后 apt --fix-broken install 我可以安装 vim。

【讨论】:

以上是关于将 ubuntu 18.04 升级到 20.04 但软件包仍然是 +bionic1的主要内容,如果未能解决你的问题,请参考以下文章

将 ubuntu 18.04 升级到 20.04 后,简单的 hello world snap 不起作用

Ubuntu 18.04 LTS/19.10 升级到 Ubuntu 20.04 beta

Docker - Ubuntu 20.04 升级后没有路由到主机

Ubuntu 18.04/20.04 CV环境配置(上):CUDA11.1 + cudnn安装配置

Ubuntu 18.04/20.04 CV环境配置(上):CUDA11.1 + cudnn安装配置

Ubuntu 18.04/20.04 CV环境配置(上):CUDA11.1 + cudnn安装配置