注意力!这是一个与我的学习相关的任务的问题。我的老师说这个任务可能没有解决方案,但我们需要尽我们所能来学习管理包。这意味着,请不要回答“没有解决方案”。如果没有解决方案,请我想知道为什么,如果有解决这个问题的中途解决方案,请说出来。
谢谢阅读
场景描述
我的虚拟机正在运行 Debian 10,并且在其中/etc/apt/sources.list
我有用于 buster 和 sid 版本的存储库。
在这里你有我的sources.list
#
# deb cdrom:[Debian GNU/Linux 10.0.0 _Buster_ - Official amd64 NETINST 20190706-10:23]/ buster main
#deb cdrom:[Debian GNU/Linux 10.0.0 _Buster_ - Official amd64 NETINST 20190706-10:23]/ buster main
deb http://deb.debian.org/debian buster main
deb-src http://deb.debian.org/debian buster main
deb http://security.debian.org/debian-security buster/updates main
deb-src http://security.debian.org/debian-security buster/updates main
# This system was installed using small removable media
# (e.g. netinst, live or single CD). The matching "deb cdrom"
# entries were disabled at the end of the installation process.
# For information about how to configure apt package sources,
# see the sources.list(5) manual.
#SID repos
deb http://deb.debian.org/debian sid main
deb-src http://deb.debian.org/debian sid main
其次,在我的/etc/apt/preferences.d
目录中,我有一个名为sid_priority
. 这些是它的内容
Package: *
Pin: release a=sid
Pin-Priority: -1
关于这个文件的一点解释
这个文件“意味着”将所有 sid 包的优先级降低到 -1,所以当我运行sudo apt update
and时sudo apt upgrade
,我最终只安装和升级了 buster 的包。sid 存储库仅用于手动安装和升级,比如说运行sudo apt install
(另请注意,我几乎不知道包优先级是如何工作的,我只看到一点互联网,我只能理解基础知识)。
我想要达到的目标
我只想通过 buster 存储库默认安装和升级。这意味着,如果我运行sudo apt update' or
sudo apt upgrade , I'm not going to install any sid packages. I'll just install sid packages if I run
sudo apt install`
我发生什么事了
我认为优先级是有效的,但是通过执行sudo apt upgrade
我最终得到了 sid 包。你可以看一个例子:
libc6:
Installed: 2.29-2
Candidate: 2.29-2
Version table:
*** 2.29-2 500
500 http://deb.debian.org/debian sid/main amd64 Packages
100 /var/lib/dpkg/status
2.28-10 500
500 http://deb.debian.org/debian buster/main amd64 Packages
顺便说一句,无论你想要什么,都不要害怕提出任何建议,因为我正在使用虚拟机,而且我正在使用一个专门用于此任务的虚拟机。如果我需要删除它,我会这样做。
谢谢你的帮助
联机帮助页中的第一个示例回答了您的问题:
例子
你
sid_preference
应该是:核实:
样本输出:
man apt_preferences
:在基于版本的引脚配置中使用
a=unstable
(套件匹配)或n=sid
(代号匹配);a=sid
不匹配任何内容,请参阅man apt_preferences
。