众所周知,Linux有一个高级软件包管理工具,称为Advanced Package Tool,通常简称为APT(apt
)。它由一堆工具组成,可以安装、更新、删除或管理已安装或可分发的包。APT通过使用存储库来工作。存储库,是用于维护软件包的存储位置。
软件包可以是文本编辑器、IDE、媒体播放器、设备驱动程序等软件。大多数软件包包含可执行程序、元数据文件、文档和配置文件。
在对软件包进行管理时,sudo apt update
和sudo apt upgrade
是Ubuntu和基于Debian的发行版中最常用的两个命令。或许你可能还记得第一次尝试在Linux系统中安装软件包并使用这些命令的情景,例如:
sudo apt update sudo apt upgrade sudo apt install <PackageName>
或者也许你需要修复某些问题,可能会建议你运行这些命令。无论处于什么样的目的,使用apt update
和apt upgrade
都是不可避免的。
许多用户对这两个命令之间的差异感到好奇,而且Linux论坛上都充斥着与之相关的问题。从表面上看,更新和升级听起来很相似,并且由于其它词已经相同,因此可能会认为两者应该做相同的事情。但根据它们的工作机制,其本质上是非常不同的,有区别的。
与此同时,在大多数情况下,可能确实需要同时进行这两项工作。
sudo apt update和sudo apt update 命令区别
我们先来详细学习一下sudo apt update
命令。
当你尝试添加或修改包时,需要拥有root权限。sudo
允许你这样做。apt
如前所述,调用高级打包工具。sudo apt update
就是更新所有可用软件包及其版本的列表。
需要注意的是,update
不要安装任何软件包,甚至不要升级它们。该命令检查存储库中可用包的最新列表。当我们输入此命令时,相当于发送一个命令来浏览软件包列表并将最新版本复制到本地计算机。
相反,sudo apt upgrade
将系统中当前安装的所有软件包更新到最新版本。
当我们输入sudo apt update
命令时,意味着将向我们的Linux服务器发送一条命令,以检查并比较当前Linux服务器中安装的所有软件包的版本与我们之前通过 复制的列表中的软件包,然后升级具有较新版本的软件包。因此,我们按以下顺序使用这些命令:
sudo apt update sudo apt upgrade
这些命令也可以写成以下形式:
sudo apt update && sudo apt upgrade
注意:并不强制要求始终一起使用这两个命令。如果你不想安装可用于多个软件包的所有较新版本,而只需要其中特定的一个,可以通过运行以下命令来实现:
sudo apt update sudo apt install <package_name>
在这里,完全跳过了安装所有新软件包,只安装了指定的一个新软件包(或版本)。
如何使用apt update和apt update命令?
接下来,让我们使用实际命令来解释这些命令。
首先使用sudo apt update
命令。然后它会询问你的系统密码。输入密码并按 Enter 键。输出看起来像这样。
Hit:1 http://packages.microsoft.com/repos/code stable InRelease Hit:2 http://dl.google.com/linux/chrome/deb stable InRelease Hit:3 https://repo.skype.com/deb stable InRelease Hit:4 https://packages.sury.org/php bullseye InRelease Hit:5 http://kali.cs.nctu.edu.tw/kali kali-rolling InRelease<font></font> Reading package lists... Done Building dependency tree... Done Reading state information... Done 1908 packages can be upgraded. Run 'apt list --upgradable' to see them.
你可以使用以下命令查看可以升级的软件包:
apt list --upgradable
如果结果类似以下的样子:
3270-common/kali-rolling 4.1ga10-1.1+b1 amd64 [upgradable from: 4.1ga10-1.1] aapt/kali-rolling 1:10.0.0+r36-9 amd64 [upgradable from: 1:10.0.0+r36-3] accountsservice/kali-rolling 22.08.8-1 amd64 [upgradable from: 22.07.5-1] adduser/kali-rolling,kali-rolling 3.123 all [upgradable from: 3.121]
注意:上面的输出仅列出了一小部分可升级包。
接下来,使用sudo apt upgrade
命令,这样你应该看到这样的结果:
输出显示由于某些依赖项解析而自动安装的包。如果这些包对你来说没有用,这时可以使用sudo apt autoremove
命令删除这些包。
再来看看sudo apt upgrade
命令输出的另一部分,如下图所示:
上图中显示的是将安装在Linux系统中的新软件包。此外,下面的输出显示了要升级的软件包列表。
最后,你会看到提示,显示升级所需的存储空间,并请求你的许可。
输入Y
、y
、 或yes
来继续升级,如果输入n
、N
、 或no
表示不升级。
如果继续升级,它将下载并解压软件包。最后,将安装并升级软件包。
关于sudo apt upgrade
命令需要注意的一件事是,它仅升级软件包和依赖项,但不会删除任何内容。也就是说,除非用另一个命令删除,否则旧包将存在。
另一件需要注意的事情是apt
和apt-get
之间的区别。在本文中,小编使用了apt
。但是,你可能会在某些地方看到使用apt-get
命令。
实际上,这些命令在大多数情况下都是可以互换使用的,它们都会更新你系统上的软件包列表。唯一的区别是apt
的输出更有用,因为它有一个用户友好的进度条。
结论
在本文中,小编简单介绍了sudo apt update
和sudo apt upgrade
命令的用法以及它们之间的区别,并且还实际执行了这些命令并解释了结果的含义。所以,通过本文内容,希望能够帮助大家更好的了解二者之间地区区别差异。