导读:我们首先讨论一下 update 和 upgrade 的区别。这两个难道不是一样的吗?
本文字数:3750,阅读时长大约: 4分钟
如果想让你的 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命令来把这些包下载和升级到最新版本。
还是有点困惑?让我来接着解释。我建议阅读 itsfoss.com。这个会帮你更好的理解这些东西。
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命令的一个更新而更简单的版本。
可以读一下这篇文章来 itsfoss.com。下面重点讨论这些命令中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 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 output
从apt中可以看到 itsfoss.com,而apt-get甚至没有这个选项。
# apt list --upgradableListing... Donefprintd/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命令需要使用 itsfoss.com 来升级内核版本。
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命令的问题。
如果有任何问题,请与我联系。
via:
作者: 选题: 译者: 校对:
本文由 原创编译, 荣誉推出
LCTT 译者 :MCGA
翻译: 15.0 篇
贡献: 802 天
2020-06-21
2022-09-01
https://linux.cn/lctt/Yufei-Yan
欢迎遵照 CC-BY-SA 协议规定转载,
如需转载,请在文章下留言 “ 转载:公众号名称”,
我们将为您添加白名单,授权“ 转载文章时可以修改”。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.