如果想让 Ubuntu 或者 Debian 系统保持更新,要用 sudo apt update
和 sudo apt upgrade
命令组合。一些以前的教程也会提到 sudo apt-get update
和 sudo apt-get upgrade
。
apt
和 apt-get
命令运行起来几乎一样,除了一些细微的差别,后面会讨论。
apt 还是 apt-get?应该用哪个?
Debian 和 Ubuntu 使用的是 APT 包管理系统。而apt-get
、apt
、dpkg
、aptitude
等是和 APT 包管理交互的命令。
当中最受欢迎的是 apt-get
命令。它是一个低层级 low-level 且功能丰富的命令。apt
是 apt-get
命令的一个更新更简单的版本。
可以读一下这篇文章来 了解 atp 和 apt-get 命令的不同。
apt update vs apt upgrade
update
命令只会获得系统上所有包的最新信息
,并不会下载或者安装任何一个包
。而是 apt upgrade
命令会下载并升级包到最新版本
。
还是有点困惑?建议阅读 包管理器的概念。这会帮你更好的理解它。
Linux Package Manager Explanation
基本上,系统围绕着一个所有可用包的数据库(缓存)工作。注意,该缓存(或者数据库)并不包含包本身,仅仅是关于包的元数据(版本、仓库、依赖等)。
如果不更新该数据库,系统就不会知道是否有更新的版本。
当运行 apt update
或者 apt-get update
命令,它会获取包的最新元数据,以更新本地缓存。
apt update
如果此时运行 sudo apt upgrade
命令,它会显示要升级的包,通过回车(默认选择是 Y
)或者按下 Y
键进行确认
,可升级所有(可升级的)包。取消升级,可以按下 N
或Ctrl+C
。
apt upgrade
apt-get update vs apt update
apt-get update
和 apt update
做的是同样的事,都是更新本地包缓存,系统获悉哪些包的版本是可用的。
从技术上讲,其实并没有区别。然而,apt update
在一个方面比 apt-get update
做的好,它会告诉你可升级的包的数量。
Hit:15 https://ppa.launchpadcontent.net/slimbook/slimbook/ubuntu jammy InReleaseFetched 213 kB in 4s (55.8 kB/s)
Reading package lists...
DoneBuilding dependency tree...
DoneReading state information...
Done6 packages can be upgraded. Run 'apt list --upgradable' to see them.
apt-get update
不会告诉你包是否可以升级。
apt get update
apt update
从 apt
中可以看到 列出可升级的包,而 apt-get
没有这个选项。
# apt list --upgradableListing... 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 upgrade
做的好的另一件小事是,它会在底部显示一个进度条。
apt upgrade progress bar
原文作者观点
这篇文章可以解释一些关于 apt-get update
、apt-get upgrade
和 apt update
以及 apt upgrade
命令的问题。
update
和 upgrade
两个词很相似,这就是为什么很多新用户会感到困惑。有时候,我觉得 apt update
命令应该和 apt upgrade
命令合并。
我意思是 upgrade
(所有已安装的包)和 update
(本地包元数据缓存)一起完成工作。为什么要有两个分开的命令呢?把这两个命合成一个 upgrade
命令吧。Fedora 就是这样对 DNF 命令进行了改进。不过这只是我的观点。
via: https://itsfoss.com/apt-update-vs-upgrade/
作者:Abhishek Prakash 选题:lkxed 译者:Yufei-Yan 校对:wxy
本文由 LCTT 原创编译,Linux中国 荣誉推出 2022-09-02 22:44