8.3.2. 管理包优先级
APT 配置中最重要的方面之一是管理与每个包源相关的优先级。 例如,您可能想使用来自 Debian Unstable 或 Debian Experimental 的一两个较新的软件包来扩展您的 Kali Rolling 系统。 可以为每个可用的包分配一个优先级(同一个包可以有多个优先级,这取决于它的版本或提供它的发行版)。 这些优先级会影响 APT 的行为:对于每个包,它总是选择具有最高优先级的版本(除非该版本比安装的版本旧并且其优先级小于 1000)。
APT 定义了几个默认优先级。 每个已安装的软件包版本的优先级为 100。未安装的版本默认优先级为 500,但如果它是目标版本的一部分(定义为 -t 命令行选项或 APT::默认发布 配置指令)。
您可以通过在 / etc / apt /首选项 包含受影响软件包名称、版本、来源和新优先级的文件。
APT 永远不会安装旧版本的包(即版本号低于当前安装的包的包),除非其优先级高于 1000。APT 将始终安装在此之后的最高优先级的包约束。 如果两个包的优先级相同,APT 会安装最新的(版本号最高的)。 如果两个相同版本的包具有相同的优先级但内容不同,APT 会安装未安装的版本(创建此规则是为了涵盖包更新而不增加修订号的情况,这通常是必需的) )。
更具体地说,永远不会安装优先级小于 0 的包。 优先级在 0 到 100 之间的包只有在没有安装其他版本的包时才会安装。 优先级在 100 到 500 之间,只有在有以下情况时才会安装包
在其他发行版中没有安装或提供其他更新版本。 仅当目标发行版中没有安装或可用的更新版本时,才会安装优先级介于 501 和 990 之间的软件包。 优先级在 990 和 1000 之间,除非安装的版本较新,否则将安装软件包。 大于 1000 的优先级总是会导致安装包,即使它强制 APT 降级到旧版本。
当 APT 检查 / etc / apt /首选项,它首先考虑最具体的条目(通常是那些指定相关包的条目),然后是更通用的条目(包括例如一个发行版的所有包)。 如果存在多个通用条目,则使用第一个匹配项。 可用的选择标准包括包的名称和提供它的来源。 每个包源都由包含在一个包中的信息标识 发布 APT 下载的文件 文件。 这些文件指定来源,通常是 Kali 官方镜像中的软件包为“Kali”,Debian 官方镜像中的软件包为“Debian”,但第三方存储库的来源也可以是个人或组织的名称。 这 发布 文件还提供了发行版的名称及其版本。 让我们通过这个机制的一些现实案例研究来看看它的语法。
的优先级 如果你在你的目录中列出了 kali-bleeding-edge 或 Debian Experimental sources.list文件 文件, Kali-Bleeding-Edge 和 相应的包几乎不会被安装,因为它们的默认 APT Debian实验 优先级是 1。这当然是一个特定的案例,旨在防止用户错误地安装前沿软件包。 这些软件包只能通过键入来安装 根据 安装 包/kali-出血边缘,当然,前提是您知道边缘生活的风险和潜在的头痛。 还是有可能的(虽然 而不去 推荐) 将 kali-bleeding-edge/experimental 包与其他发行版的包一样对待,将它们的优先级设置为 500。这是通过在 / etc / apt /首选项: | |
包装:* Pin: 释放 a=kali-bleeding-edge Pin-Priority: 500 | |
假设您只想使用 Kali 的软件包,并且您只想在明确要求时安装 Debian 软件包。 您可以在 /etc/apt/ 偏好 文件(或在任何文件 /etc/apt/preferences.d/):
包装:*
引脚:释放 o=Kali 引脚优先级:900
包装:*
引脚:发布 o=Debian 引脚优先级:-10
包装:*
引脚:释放 o=Kali 引脚优先级:900
包装:*
引脚:发布 o=Debian 引脚优先级:-10
在最后两个例子中,你已经看到 a=kali-出血边缘,它定义了所选分布的名称和 o=卡利 和 o=Debian,将范围限制为分别来自 Kali 和 Debian 的软件包。
现在让我们假设您的服务器有几个本地程序,具体取决于 Perl 的 5.22 版本,并且您希望确保升级不会安装它的另一个版本。 您可以使用此条目:
包:perl
引脚:版本 5.22* 引脚优先级:1001
包:perl
引脚:版本 5.22* 引脚优先级:1001
手册页中提供了此配置文件的参考文档 apt_preferences(5),你可以用它来显示 人 apt_preferences.
添加评论 中没有评论的官方语法 / etc / apt /首选项,但有些文字 / etc / apt /首选项 可以通过添加一个或多个来提供描述 说明 每个条目中的字段: | |
说明:xserver-xorg-video-intel 提供的包说明:在实验中可以安全使用 包:xserver-xorg-video-intel 引脚:release a=experimental 密码优先级:500 | |