问题:
假设我有一个软件的 PPA(例如 Blender);http://ppa.launchpad.net/thomas-schiex/blender/ubuntu) 由于某些原因,包含 Python3.6 版本。
我想要实现的目标:
假设我想要一个“更好的” Python3.6 包,例如来自 python 专用 ppa,就我而言;http://ppa.launchpad.net/jonathonf/python-3.6/ubuntu
问题:
如何apt
选择要安装哪个软件包?有没有办法告诉我apt
从所需的 ppa 中安装哪个软件包?
我猜它会选择最新的软件包(我错了吗?),但如果出于某些原因我想保留特定的旧版本怎么办?
使用 python3.6 的示例在这里“仅”是一个例子,这可能对任何包。
关于重复的注释:
即使评论中推荐的链接中的答案相同,切入点,即“问题”并不完全相同,许多人可能会通过此搜索结果而不是其他搜索结果找到答案。因此,在我看来,严格来说,答案有点重复,而不是问题。
答案1
正如您猜测的那样apt
,将安装您的源中可用的最新版本。
例如:
$ apt-cache madison firefox
firefox | 61.0.1+build1-0ubuntu0.18.04.1 | http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 Packages
firefox | 61.0.1+build1-0ubuntu0.18.04.1 | http://security.ubuntu.com/ubuntu bionic-security/main amd64 Packages
firefox | 59.0.2+build1-0ubuntu1 | http://archive.ubuntu.com/ubuntu bionic/main amd64 Packages
如您所见,有两个不同版本的 Firefox 可供安装,让我们检查一下要安装哪一个:
$ apt-cache policy firefox | head -3
firefox:
Installed: (none)
Candidate: 61.0.1+build1-0ubuntu0.18.04.1
如您所见,将要安装最新版本(它是安装的候选版本)
您可以使用:
sudo apt install package-name=version
例如:
sudo apt install firefox=59.0.2+build1-0ubuntu1
安装软件的旧版本。
作为替代方案渴望,你可以apt-mark
阻止它升级:
sudo apt-mark hold firefox