在工作中,我在VirtualBox上收到了一个虚拟机。除了它正在运行Debian 10之外,我对它的组成一无所知。
很快,因为像Chrome这样的工具在抱怨,我不得不做一个apt-get update
+upgrade
来把包放在他们最近的版本中。
但是因为我还有一些问题(冻结Virtualbox或我的 VM,我无法决定),我正在考虑做一个apt-get dist-upgrade
.
在家里,我不会质疑自己,命令会立即下达。但是在工作中,在一个未知的虚拟机面前,我想知道这是否明智。
如果我启动 ,我面临的(一般)风险是什么
apt-get dist-upgrade
?你会说,即使你不知道你下面有什么操作系统和软件设置,一般来说,这样做是个好主意吗?
相反,如果我拒绝
dist-upgrade
在这个“虚拟机生活”中做任何事情,我会面临什么?我注定要遇到一些麻烦吗?
建议执行 dist-upgrade 的决定,以使您的系统与最新的安全补丁和错误修复保持同步,但在未知 VM 上应该基于对所涉及风险的仔细评估!
A
dist-upgrade
可以安装新包或删除现有包。如果您决定
dist-upgrade
,请检查备份或回滚的可用性,以恢复原始状态。决定时的风险:
dist-upgrade
可能会安装新包或删除它们,如果系统上安装了自定义配置或第三方软件,这可能会导致包之间发生冲突。它可能会引入可能未经过全面测试或与您的特定环境不兼容的更改,这可能会导致系统不稳定、崩溃或不可预测的行为。
如果 vm 已被定制或具有特定软件,则配置可能会覆盖这些定制或与这些定制发生冲突,并可能导致功能出现问题。
不决定的风险:
如果不升级系统组件,您可能会错过重要的安全更新,从而使您的系统容易受到漏洞利用和攻击。
较新的包和依赖项可能与旧版本不兼容。
您可能会错过更新包中引入的错误修复、性能改进和新功能。
为什么使用 apt-get upgrade 而不是 apt-get dist-upgrade?
Apt Upgrade 与 Apt Dist-upgrade:主要区别
apt-get upgrade 与 dist-upgrade 之间有什么区别?
如果系统是旧的(如 Debian 10)和
/etc/apt/sources.list
/或/etc/apt/sources.list.d/*.list
文件使用诸如stable
或 之类的词来标识 Debian 存储库,testing
而不是使用适当的版本代号(buster
对于 Debian 10),则当前稳定的 Debian 版本可能已经更改,因为系统是最近更新时间。这曾经是旧版本 Debian 中的标准默认设置。例如,如果
/etc/apt/sources.list
有这些行:由于当前
stable
版本现在是 Debian 11(现在 Debian 10 已经成为oldstable
),运行apt-get dist-upgrade
将尝试将系统从 Debian 10 升级到 Debian 11。如果没有先阅读新版本的发行说明,千万不要这样做,因为可能有是确保成功升级所需遵循的具体程序。如果您希望继续使用 Debian 10,您应该确保所有对 Debian 存储库的引用都在 中,
/etc/apt/sources.list
并/etc/apt/sources.list.d/*.list
使用发行代号buster
而不是stable
或oldstable
。如果您从第三方存储库为 Debian 10 安装了软件,那么如果系统升级到 Debian 11,这些软件包可能会或可能不会工作。您必须检查每个这样的第三方存储库:是否声称该软件也可以工作在 Debian 11 中,还是他们有应该与 Debian 11 一起使用的不同存储库?主要版本升级是否需要任何特殊程序?
apt-get upgrade 和 apt-get dist-upgrade 之间的区别在于,后者将安装和/或删除软件包以取消阻止其他软件包的升级,而前者只会升级可以在不更改已安装软件包列表的情况下升级的软件包(注意:apt upgrade 将安装新包但不会删除包)。
如果你只使用 apt-get upgrade 你可能会错过一些更新。
每当您使用 apt-get dist-upgrade 时,您都应该注意它所说的将要执行的操作。在您理解之前,您不应该选择是。
在一个版本内升级的纯 Debian 稳定系统上* dist-upgrade 不应该添加或删除太多。稳定版本的全部要点在于,一旦做出更改,就应将其保持在最低限度。
内核包有点例外。内核上游没有稳定的模块 ABI,即使在稳定版本系列中也是如此,有时内核升级会带来内核 ABI 碰撞,导致内核包被重命名。
Web 浏览器也可能有点例外。它们都没有 Debian 稳定版本那样长的支持生命周期,这意味着新的主要浏览器版本,可能具有新的依赖关系,必须引入到稳定版本中。
如果系统有 backports,或者正在使用第三方存储库,那么这些可能会有更具侵入性和风险的升级。
* 升级到下一个版本是另一回事。