将 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.1
或ubuntu1
【问题讨论】:
【参考方案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安装配置