您可以通过以下方式指定特定版本来安装软件包:apt-get install pkg=version
。
但你能指定一个最低版本吗?
例如,我至少想要 gcc 8,但我可以使用 gcc 9。
像这样的东西(显然不起作用):apt-get install pkg>=version
答案1
Sice apt 1.9(2019年6月17日发布),您可以使用apt(-get) satisfy
:
sudo apt-get satisfy "foo (>= 1.0), bar (>= 2.0)"
依赖字符串语法如下所述:
https://www.debian.org/doc/debian-policy/ch-relationships.html#syntax-of-relationship-fields
答案2
apt
包上的选项允许用户在apt
了解的包的各个版本中进行选择;它们不允许用户指定一般包约束。
实现您所追求的目标的最简单方法是使用equivs
.将以下内容写入文件,例如mingcc
:
Section: devel
Priority: optional
Standards-Version: 4.5.0
Package: gcc-8-or-later
Depends: gcc (>= 4:8)
Description: dependency package ensuring GCC 8 or later is installed
This meta-package ensures that GCC 8 or later is installed.
然后构建包:
equivs-build mingcc
这将gcc-8-or-later_1.0_all.deb
在当前目录或$TMP
.您可以使用以下命令安装它apt
:
apt install ./gcc-8-or-later_1.0_all.deb
仅当 GCC 8 或更高版本可用时,安装才有效。
(gcc
Debian 和 Ubuntu 中的元包使用纪元,目前为 4,因此>= 4:8
。)