apt的update和upgrade区别

admin10个月前笔记84

一些以前的教程也会提到 sudo apt-get update 和 sudo apt-get upgrade。apt 和 apt-get 命令运行起来几乎一样,除了一些细微的差别,后面我会讨论。我们首先讨论一下 update 和 upgrade 的区别。这两个难道不是一样的吗?

apt 的 update 和 upgrade 的区别

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

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

image.png

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

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

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

image.png

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

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

image.png

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

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

  1. 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 甚至不会告诉你包是否可以升级。

image.pngimage.png

从 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 来升级内核版本。

image.png

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

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

image.png

总结

update 和 upgrade 两个词很相似,这就是为什么很多新用户会感到困惑。有时候,我觉得 apt update 命令应该和 apt upgrade 命令合并。

我意思是 upgrade(所有已安装的包)和 update(本地包元数据缓存)一起完成工作。为什么要有两个分开的命令呢?把这两个领命合成一个 upgrade 命令吧。Fedora 就是这样对 DNF 命令进行了改进。不过这只是我的观点。

我希望这篇文章可以解释一些关于 apt-get update、apt-get upgrade 和 apt update 以及 apt upgrade 命令的问题。


相关文章

pinia简单入门小教程

pinia简单入门小教程

一.安装1.直接在安装脚手架时导入 2.控制台终端输入npm i pinia二.在main.js中导入并注册三.定义模块新建文件 src/store/counter.js,名字随意四.使用模...

V2Ray 是什么?

V2Ray 是什么?

V2Ray 是一个网络代理工具,通过使用特定的中转服务器完成数据传输,支持 HTTP(只支持传入)、Socks、Shadowsocks、Trojan、VMess、VLESS等内容传输协议,每个内容传输...

Select进阶查询·连接查询

Select进阶查询·连接查询

一、连接查询定义:把多张表通过连接条件临时组成1张新表,在临时的新表里有连接表的所有表头和数据。连接查询分类:内连接、外连接、全连接二、连接语法结构:三、内连接:等值连接:使用相等判断做连接条件非等值...

突然断电,是否会影响Mysql的执行结果

突然断电,是否会影响Mysql的执行结果

MySQL采用buffer机制,避免每次读写进行磁盘IO,提升效率:《缓冲池(buffer pool)》《写缓冲(change buffer)》《日志缓冲(log buffer)》MySQL的buff...

教你如何更改Linux控制台上的字体

教你如何更改Linux控制台上的字体

我尝试尽可能的保持心灵祥和,然而总有一些事情让我意难平,比如控制台字体太小了。记住我的话,朋友,有一天你的眼睛会退化,无法再看清你编码时用的那些细小字体,到那时你就后悔莫及了。幸好,Linux 死忠们...

Shell 输入重定向

和输出重定向一样,Unix 命令也可以从文件获取输入,语法为:command1 < file1这样,本来需要从键盘获取输入的命令会转移到文件读取内容。注意:输出重定...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。