如果想让你的 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 命令的问题。

apt 的 update 和 upgrade 命令的区别是什么?相关推荐

  1. apt update和apt upgrade命令 - 有什么区别?

    在之前的文章中,我们查看了APT 命令以及您可以使用包管理器来管理包的各种方法.这是一个总体概述,但在本指南中,我们暂停并重点关注 2 个命令用法.这些是apt update和apt upgrade命 ...

  2. Linux中apt-get update和apt-get upgrade命令的区别

    本文主要讲一下在linux下安装软件方面的特点.但在Linux下,不是这样的.每个LINUX的发行版,比如ubuntu,都会维护一个自己的软件仓库,我们常用的几乎所有软件都在这里面.这里面的软件绝对安 ...

  3. linux系统update和upgrade区别

    Linux Apt原理和应用 apt的主要工作是解决软件包之间的依赖关系,apt并不执行包的安装与删除等操作,而是将这些任务交给dpkg来做. APT的出现 起初,在Linux上安装软件是通过编译源码 ...

  4. sudo apt-get update 与upgrade的用法

    sudo apt-get update 与upgrade的用法 在windows下安装软件,我们只需要有EXE文件,然后双击,下一步直接OK就可以了.但在LINUX下,不是这样的.每个LINUX的发行 ...

  5. ununtun学习系列1--- sudo update与upgrade区别

    在windows中安装软件,我们只需要一个.exe的可执行文件,直接下一步就可以安装了.但是在每个linux的发行版,例如ubuntu中,都会维护一个软件仓库,我们常用的所有软件都在里面.这里面的软件 ...

  6. SylixOS DSP upgrade命令解析

    SylixOS DSP upgrade命令解析 --SylixOS DSP6678平台下升级BSP 一.适用范围 本升级方案,针对TI官方评估板(TMDSEVM6678LE),主要介绍如何将Sylix ...

  7. Flutter开发:运行flutter upgrade命令报错Exception:Flutter failed to create a directory at…解决方法

    前言 在Flutter开发中,经常会遇到因为更新而引起的报错,而且最近两年Flutter不断完善和更新的速度越来越快,这就需要Flutter相关的开发者时刻保持不断学习的心态,来应对在Flutter开 ...

  8. update 和 upgrade

    update和upgrade这两个单词一定是都不陌生的,虽然都是升级或者更新的意思,但很难搞懂两个单词到底有什么区别(其实在软件更新方面两个是可以通用的).最基本的讲,update是"更新& ...

  9. update和upgrade的主要区别

    update和upgrade的区别不是很大,侧重点不同而已. update侧重更新的意思,主要是为原有的东西增加新功能,或者对已有的部分做出更改等.比如,数据库更新数据,那么就是update,而不能用 ...

最新文章

  1. python文本处理实例_Python 文件处理的简单示例
  2. 冒泡排序_python实现冒泡排序
  3. tomcat的log日志乱码解决方案
  4. 有关rsync的一些语句
  5. Stas and the Queue at the Buffet
  6. PHP8编译swoole出错,swoole自定义错误的方法
  7. Python下载、安装及其配置
  8. 【系统设计】发现类的方法
  9. Python_排序算法实现
  10. Redis学习(5)-常用命令
  11. 列顺序对SQL Server复合索引的影响
  12. python制动化之路
  13. android学习-仿Wifi模块实现
  14. 对服务器端接口的调用,自己手写了一个脚本,但返回信息的中文总是乱码(这个方法很不错,重要的是解决思路,寻找手写脚本与录制脚本 生成目录文件的区别)...
  15. 台风怎么看内存颗粒_RGB灯效内存条怎么选,看老胡推荐
  16. 建议平面设计爱好者要学的软件,和一些CDR常见问题
  17. 电脑如何设置定时任务、定时执行 —— 不用Windows任务计划程序,也能轻松设定计划任务、定时任务 —— 定时执行专家
  18. 正在参加2021年「博客之星」评选,求投票
  19. 根治偏头痛及各种头痛病症
  20. js实现登录页面的背景图片的随机展示

热门文章

  1. SpringBoot的宠物医院管理系统(有文档)
  2. STM32实现串口下载
  3. Python基础练习之名片管理器
  4. (6)ChromeDriverManager自动下载浏览器驱动
  5. 计算机英语backup,计算机英语:关于数据丢失
  6. codeforces 590D Top Secret Task(dp)
  7. UI设计师常用的软件都有哪些
  8. win7 html 插件,win7系统清理插件的三种方法
  9. Can anybody get it?
  10. Do not trust anybody!