为什么 apt-get 存储库硬编码到特定版本?

为什么 apt-get 存储库硬编码到特定版本?

从可用性的角度来看,我不明白为什么在每次版本升级时都必须手动修补 apt 的所有 URL 以使它们指向较新的发行版。

为什么 apt 不能自动检测当前版本并使用它,这样当你升级时就不再需要升级 url 了?

答案1

我不明白为什么在每次版本升级时都必须手动修补 apt 的所有 URL 以使它们指向较新的发行版。

您不必这样做。(无论如何,通常不会。)实际上,在 Ubuntu 中,手动更改版本名称sources.list不是受支持的升级方式,并且通常不起作用。

当软件包管理器检查哪些软件包版本可供安装或升级时,将查阅/etc/apt/sources.list配置文件/etc/apt/sources.list.d以了解已配置哪些软件源。这包括但不限于有关已安装哪个版本的信息,有时(但通常不是!)甚至有必要为您正在运行的版本以外的版本配置软件源。

当您使用受支持的方法(例如软件更新程序/更新管理器或命令do-release-upgrade)升级到较新的 Ubuntu 版本时,版本名称sources.list将自动更改。某些软件源(例如 PPA)可能会被禁用。

Ubuntu 的软件包管理器不只是检查安装了哪个版本,并动态地使用该信息来确定要使用哪些软件源,原因之一是没有一件事即您正在运行的版本。通常,您使用的 Ubuntu 版本(例如 14.04)是明确定义的。但在版本升级期间,以及在某些其他情况下(有些是病态的,有些是适当的),您可能会混合使用不同的版本。

为了让 Ubuntu 在版本升级中真正、真正、明确地运行下一个版本(即版本升级目标),或者甚至达到常用指标(如 的内容)/etc/lsb-release指示目标版本的程度,它必须第一的更改配置的软件源(更改为目标版本的软件源)并升级、安装和删除软件包以反映这些软件源提供的内容。

答案2

您添加的每个存储库不一定都是官方的 Ubuntu 存储库。以 Oracle Virtualbox 为例:每次发布 Ubuntu 版本时,存储库都会延迟几天(或几周)更新。但与此同时,“旧”存储库工作正常。在这种情况下,能够说明您要查询哪个版本至关重要。

为什么 apt 不能自动检测当前版本并使用它,这样当你升级时就不再需要升级 url 了?

对于官方存储库,此操作可通过 GUI ( sudo update-manager) 和命令行 ( sudo do-release-upgrade) 自动完成。您可以手动执行此操作,但这不是必需的。

相关内容