

apt 的 update 和 upgrade 命令的区别是什么?
source link: https://www.51cto.com/article/717893.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.


如果想让你的 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
基本上,你的系统围绕着一个所有可用包的数据库(缓存)工作。注意,这个缓存(或者数据库)并不包含这些包本身,仅仅是关于包的元数据(版本、仓库、依赖等)。
如果你不更新这个数据库,系统就不会知道是否有更新的版本。
当你运行 apt update
或者 apt-get update
命令,它会获取这些包的最新元数据(包的版本等)。

apt update
这时候本地缓存就被更新了,有一些包可以升级。用 sudo apt upgrade
可以升级所有(可升级的)包。
它会显示要升级的包,并且通过回车(默认选择是 Y
)或者按下 Y
键进行确认。要在这个阶段取消升级,可以按下 N
。

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-get
、apt
、dpkg
、aptitude
等。
这里面最受欢迎的就是 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
做的好,它会告诉你可升级的包的数量。
Hit:15 https://ppa.launchpadcontent.net/slimbook/slimbook/ubuntu jammy InRelease
Fetched 213 kB in 4s (55.8 kB/s)
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
6 packages can be upgraded. Run 'apt list --upgradable' to see them.
apt-get update
甚至不会告诉你包是否可以升级。

apt get update

apt update output
从 apt
中可以看到 列出可升级的包,而 apt-get
甚至没有这个选项。
# apt list --upgradable
Listing... Done
fprintd/jammy-updates 1.94.2-1ubuntu0.22.04.1 amd64 [upgradable from: 1.94.2-1]
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]
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]
gnome-control-center/jammy-updates 1:41.7-0ubuntu0.22.04.4 amd64 [upgradable from: 1:41.7-0ubuntu0.22.04.1]
libpam-fprintd/jammy-updates 1.94.2-1ubuntu0.22.04.1 amd64 [upgradable from: 1.94.2-1]
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
命令不能安装一个新的包。它只能升级现有的包。
apt upgrade
比 apt-get
做的好的另一件小事是,它会在底部显示一个进度条。

apt upgrade progress bar
update
和 upgrade
两个词很相似,这就是为什么很多新用户会感到困惑。有时候,我觉得 apt update
命令应该和 apt upgrade
命令合并。
我意思是 upgrade
(所有已安装的包)和 update
(本地包元数据缓存)一起完成工作。为什么要有两个分开的命令呢?把这两个领命合成一个 upgrade
命令吧。Fedora 就是这样对 DNF 命令进行了改进。不过这只是我的观点。
我希望这篇文章可以解释一些关于 apt-get update
、apt-get upgrade
和 apt update
以及 apt upgrade
命令的问题。
Recommend
-
14
Ubuntu 16.04 发布时,一个引人注目的新特性便是 apt 命令的引入。其实早在 2014 年,apt 命令就已经发布了第一个稳定版,只是直到 2016 年的 Ubuntu 16.04 系统发布时才开始引人关注。 随着 apt install package 命令...
-
5
零一间0.3262020.12.28 19:10:45字数 1,224阅读 100 image.png apt与apt-get 在开始对比 apt 与 apt-get 命...
-
6
如何从apt upgrade中排除指定包 在 archlinux 下可以直接通过 pacman -Syu --ingore 来跳过指定包进行升级, 然而ubuntu 下的 apt 居然不提供类似的排除选项,这很让我感到吃惊. 不过网上apt的内容倒是蛮多,经过简单的搜索,很容易找到...
-
9
Ubuntu 16.04 发布时,一个引人注目的新特性便是 apt 命令的引入。其实早在 2014 年,apt 命令就已经发布了第一个稳定版,只是直到 2016 年的 Ubuntu 16.04 系统发...
-
9
Upgrade Single Package on UbuntuHow can I upgrade a single package on Ubuntu/Debian/Linux Mint using apt-get command line tool?. The most common way of upgrading packages on Ubuntu/Debian is by running the command sudo apt-get upgrade
-
7
漂亮的 Linux apt 命令前端,下载速度比 apt 快 16 倍-51CTO.COM 漂亮的 Linux apt 命令前端,下载速度比 apt 快 16 倍 作者:聆听世界的鱼 2022-03-19 10:26:48 如果你正在寻找更有吸引力的 CLI...
-
6
apt update vs apt upgrade: What's the difference? Pac...
-
11
在 Linux 系统中安装和删除软件都逃不开「依赖」问题,刚开始使用 Linux 时,用户可能还会去注意应用程序的依赖性...
-
8
Debian 作为 Ubuntu、Linux Mint 和 elementary OS 等 Linux 操作系统的母板,Debian 类使用一套名为 Advanced Packaging Tool(APT,请不要把它与 apt 命令混淆)的工具来管理软件包。 最常用的 Debian 类包管理命令都被分散在了 apt-get、apt-cache 和 ap...
-
8
apt remove 和 apt purge: 有什么区别? 作者:Abhishek Prakash 2023-01-19 17:51:19 为什么会有两个如此像的命令来删除软件包呢?两者之间有什么不同呢?下面将为你揭晓。
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK