apt 的 update 和 upgrade 的区别

如果想让你的 Ubuntu 或者 Debian 系统保持更新,要用 sudo apt update 和 sudo apt upgrade 命令组合。

一些以前的教程也会提到 sudo apt-get update 和 sudo apt-get upgrade

apt 和 apt-get 命令运行起来几乎一样,除了一些细微的差别,后面我会讨论。

我们首先讨论一下 update 和 upgrade 的区别。这两个难道不是一样的吗?

apt 的 update 和 upgrade 的区别

尽管听上去运行 apt update 可以给你一个包的最新版本,然而这并不正确。update 命令只会获得系统上所有包的最新信息,并不会下载或者安装任何一个包。而是 apt upgrade 命令来把这些包下载和升级到最新版本。

还是有点困惑?让我来接着解释。我建议阅读 包管理器的概念。这个会帮你更好的理解这些东西。

Linux Package Manager Explanation

Linux Package Manager Explanation

基本上,你的系统围绕着一个所有可用包的数据库(缓存)工作。注意,这个缓存(或者数据库)并不包含这些包本身,仅仅是关于包的元数据(版本、仓库、依赖等)。

如果你不更新这个数据库,系统就不会知道是否有更新的版本。

当你运行 apt update 或者 apt-get update 命令,它会获取这些包的最新元数据(包的版本等)。

apt update

apt update

这时候本地缓存就被更新了,有一些包可以升级。用 sudo apt upgrade 可以升级所有(可升级的)包。

它会显示要升级的包,并且通过回车(默认选择是 Y)或者按下 Y 键进行确认。要在这个阶段取消升级,可以按下 N

apt upgrade

apt upgrade

下面这些可能会帮助你记忆:

  • apt update:更新包缓存(可以知道包的哪些版本可以被安装或升级)
  • apt upgrade:升级包到最新版本

因为有一些管理员命令,需要作为 root 运行。因此需要使用 sudo 配合其他命令。sudo 使你能够作为 root 在 Ubuntu 和 Debian 上运行命令。

既然理解了 update 和 upgrade 是如何一起运行的,我们接下来来讨论一下 apt 和 apt-get 的用法。

apt 还是 apt-get?应该用哪个?

Debian 和 Ubuntu 使用的是 APT 包管理系统。不要和 apt 命令弄混了。

有许多和 APT 包管理交互的命令;apt-getaptdpkgaptitude 等。

这里面最受欢迎的就是 apt-get 命令。它是一个低层级low-level且功能丰富的命令。apt 是 apt-get 命令的一个更新而更简单的版本。

可以读一下这篇文章来 了解 atp 和 apt-get 命令的不同。下面重点讨论这些命令中 update 和 upgrade 选项的区别。

apt update vs apt-get update

apt-get update 和 apt update 做的是同样的事,都是更新本地包缓存,这样的话你的系统就知道有哪些包的版本是可用的。

从技术上讲,其实并没有区别。然而,apt update 在一个方面比 apt-get update 做的好,它会告诉你可升级的包的数量

 
  1. Hit:15 https://ppa.launchpadcontent.net/slimbook/slimbook/ubuntu jammy InRelease
  2. Fetched 213 kB in 4s (55.8 kB/s)
  3. Reading package lists... Done
  4. Building dependency tree... Done
  5. Reading state information... Done
  6. 6 packages can be upgraded. Run 'apt list --upgradable' to see them.

apt-get update 甚至不会告诉你包是否可以升级。

apt get update

apt get update

apt update output

apt update output

从 apt 中可以看到 列出可升级的包,而 apt-get 甚至没有这个选项。

 
  1. # apt list --upgradable
  2. Listing... Done
  3. fprintd/jammy-updates 1.94.2-1ubuntu0.22.04.1 amd64 [upgradable from: 1.94.2-1]
  4. gnome-control-center-data/jammy-updates,jammy-updates 1:41.7-0ubuntu0.22.04.4 all [upgradable from: 1:41.7-0ubuntu0.22.04.1]
  5. gnome-control-center-faces/jammy-updates,jammy-updates 1:41.7-0ubuntu0.22.04.4 all [upgradable from: 1:41.7-0ubuntu0.22.04.1]
  6. gnome-control-center/jammy-updates 1:41.7-0ubuntu0.22.04.4 amd64 [upgradable from: 1:41.7-0ubuntu0.22.04.1]
  7. libpam-fprintd/jammy-updates 1.94.2-1ubuntu0.22.04.1 amd64 [upgradable from: 1.94.2-1]
  8. vivaldi-stable/stable 5.4.2753.40-1 amd64 [upgradable from: 5.4.2753.37-1]

现在来比较一下两个命令中 upgrade 的选项。

apt upgrade vs apt-get upgrade

apt-get upgrade 和 apt upgrade 命令根据本地包缓存(通过 update 命令更新)的数据,安装可升级包的最新版本。

然而,apt upgrade 命令会做两件与 apt-get upgrade 不同的事情。

apt upgrade 命令可以升级 Linux 内核版本,apt-get upgrade 不能。apt-get 命令需要使用 apt-get dist-upgrade 来升级内核版本。

apt-get upgrade command cannot upgrade Linux kernel version

apt-get upgrade command cannot upgrade Linux kernel version

这是因为升级内核版本意味着安装一个全新的包。apt-get upgrade 命令不能安装一个新的包。它只能升级现有的包。

apt upgrade 比 apt-get 做的好的另一件小事是,它会在底部显示一个进度条

apt upgrade progress bar

apt upgrade progress bar

<think>好的,我现在需要回答用户关于apt-get updateapt-get upgrade区别的问题。首先,我得仔细理解用户的问题,确保准确回答。用户可能对这两个命令不太清楚,容易混淆,所以需要详细解释每个命令的作用、执行过程适用场景。 首先,我应该回顾自己掌握的知识。根据提供的引用资料,apt-get update主要是更新本地软件包列表,而apt-get upgrade则是根据这个列表升级已安装的软件包。引用[1]、[2]、[3]、[4]都提到这一点。例如,引用[4]明确说明update同步远程仓库信息到本地列表,而upgrade实际升级软件。 接下来,我需要整理两者的主要区别。可能需要分点说明,比如作用不同、执行步骤、对系统的影响等。同时,要结合使用场景,比如在安装新软件前应该先update,而升级现有软件则用upgrade。此外,可能需要注意是否需要按顺序执行这两个命令,比如先updateupgrade,因为upgrade依赖最新的包列表。 然后,用户可能需要知道为什么需要分开两个命令,是否有必要每次upgrade前都update。引用[2]提到通常需要先运行update,以确保列表最新。因此,使用场景部分应该强调这种顺序的重要性。 另外,是否还有其他相关命令,比如dist-upgrade,但用户没有问到,可能不需要深入,但可以稍微提及,避免信息过载。不过,根据用户的问题,可能不需要扩展其他命令,保持答案简洁。 需要确保回答结构清晰,分步骤或分点,让用户容易理解。可能的结构是:先分别解释每个命令,然后对比区别,再说明使用场景顺序,最后给出示例命令。同时,引用资料中的内容需要正确标注引用标记,如[^1]、[^2]等。 还要注意用户提到的LaTeX格式是否正确,但这个问题中可能没有数学公式,所以可能不需要用到。但需要检查是否有其他格式要求,比如代码块是否用正确的方式展示命令示例。 最后,生成相关问题。根据用户提供的示例,可能需要问及为什么需要分开两个命令,如何自动执行这两个命令,或者upgrade的风险等。 现在,检查是否有遗漏点。例如,apt-get update不会修改已安装的软件,只是更新列表;而upgrade会实际安装新版本。同时,upgrade不会处理依赖关系的改变,可能需要dist-upgrade来处理。但根据引用资料,引用[2]提到upgrade会检查兼容性,如果依赖没有问题才会升级。因此,可能需要说明upgrade在依赖兼容时的行为。 总结回答的结构: 1. 分别解释updateupgrade的作用,引用相关文献。 2. 对比两者的主要区别,如功能、执行结果、频率等。 3. 使用场景,何时使用哪个命令,是否需要组合使用。 4. 示例命令,展示典型用法。 5. 相关问题,围绕区别、使用建议、其他相关命令等生成问题。 需要确保每个部分的信息准确,引用正确,并且语言简洁明了,符合中文表达习惯。</think>### apt-get updateapt-get upgrade区别及使用场景 #### 1. **apt-get update** **作用**:更新本地的软件包列表信息。 - 该命令会从配置的软件源(如Ubuntu官方仓库)下载最新的软件包列表,包括可用软件的名称、版本依赖关系,但不会对已安装的软件进行任何修改[^4]。 - 例如,当仓库中添加了新版本的Python时,`apt-get update`会记录这一信息,但不会自动安装新版本。 #### 2. **apt-get upgrade** **作用**:升级系统中已安装的软件包到最新版本。 - 该命令会基于本地缓存的软件包列表(需先通过`apt-get update`更新),检查已安装软件是否有新版本,并自动下载安装兼容的更新[^2][^3]。 - 例如,若系统已安装的Firefox有安全补丁,`apt-get upgrade`会将其升级到包含补丁的版本。 --- #### 主要区别对比 | **对比项** | **apt-get update** | **apt-get upgrade** | |------------------|-----------------------------------|------------------------------------| | **功能** | 同步远程仓库的软件包列表到本地 | 根据列表升级已安装的软件包 | | **修改内容** | 仅更新本地元数据(不涉及软件本身)| 修改已安装的软件版本 | | **执行频率** | 建议频繁执行(如安装软件前) | 按需执行(如定期系统维护) | | **依赖顺序** | 需先执行,为upgrade提供最新列表 | 需在update之后执行以获取最新版本 | --- #### 使用场景与建议 - **场景1:安装新软件前** 先运行`sudo apt-get update`,确保本地列表包含最新版本,避免安装过时软件。 - **场景2:定期系统维护** 组合使用命令: ```bash sudo apt-get update && sudo apt-get upgrade ``` 先更新列表,再升级所有可更新的软件包[^1]。 - **场景3:修复依赖问题** 若`apt-get upgrade`提示依赖冲突,可能需要使用`apt-get dist-upgrade`(处理依赖变更)。 --- #### 示例操作流程 1. **更新软件包列表**: ```bash sudo apt-get update ``` 2. **升级已安装的软件**: ```bash sudo apt-get upgrade ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值