Ubuntu 中的 APT 和 dpkg 有什么区别? apt-get update 和 upgrade 的区别

apt-get update 和 upgrade 的区别

Debian系的Linux发行版的两种包管理工具:
apt (Advanced Packaging Tools) 高级包管理工具(install安装,remove移除)
dpkg Debian package,直接操作下载好的软件包文件(-i安装,-r移除)。

apt update:只检查,不更新(已安装的软件包是否有可用的更新,给出汇总报告)
用法: apt update

apt upgrade:更新已安装的软件包
用法: apt upgrade 软件包名


关系:apt是基于dpkg的。
APT 和dpkg都是命令行包管理界面,APT 使用 dpkg 安装包,当 APT(或其表亲 Apt-get)安装软件包时,它实际上是在后端使用 dpkg 来完成该操作。通过这种方式,dpkg 更像是 APT 更友好的用户界面的“幕后”工具。APT会自动检查并获取相关的依赖项,以确保您尝试正确安装任何功能。这就是为什么我们建议在使用 dpkg 安装软件包后,您仍然使用 APT 的特殊命令来恢复依赖项:
sudo apt install -f

使用语法 Apt:
apt install ./discord-0.0.14.deb
使用语法 Dpkg:
dpkg -i ./discord-0.0.14.deb

APT可以下载包,可以从远程存储库中检索文件并安装它。
dpkg,只能安装自己已经下载的本地文件。它无法搜索远程存储库或从中提取包。dpkg 不会安装依赖,只简单地安装软件包。

apt

列出已安装的软件 apt list --installed
安装 apt-get install xxx
卸载 apt-get remove xxx Remove packages
自动卸载 apt-get autoremove Remove automatically all unused packages
卸载并清除配置 apt-get remove --purge xxx
清理系统/删除下载好的软件包
apt-get clean Erase downloaded archive files
apt-get autoclean Erase old downloaded archive files
根据正则表达式搜索软件包列表 apt-cache search xxx
显示该软件包的依赖关系信息 apt-cache depends xxx

dpkg (Package manager for Debian) Debian系的包管理工具

安装 dpkg -i xxx.deb -i同--install
若缺少依赖,则执行以下命令自动安装缺少的依赖项:sudo apt-get -f -y install
卸载 dpkg -r xxx.deb -r同--remove
-p同--purge选项表示卸载的同时清除配置文件。
搜索含有指定文件的软件包 dpkg -s xxx 同--search
列出属于指定软件包的文件 dpkg -L xxx.deb 同--listfiles
列出软件包的状态 dpkg -l xxx同--list
查看软件包信息 dpkg -info xxx.deb
重新配置软件包 dpkg-reconfigure xxx

apt-get dist-upgrade 时,它会根据需要智能地安装或删除软件包,以完成升级, 尝试升级最重要的软件包,以牺牲那些被认为不太重要的软件包。
apt-get upgrade 不会删除包,它只会升级。

do-release-upgrade 命令负责从一个版本升级到另一个版本。如果你想从 Ubuntu 18.10 升级到 19.04,你可以使用 do-release-upgrade。
但是,要使用此命令,必须先对系统进行全面升级。为此,您应该首先运行sudo apt-get upgrade,然后运行sudo apt-get dist-upgrade。当这两个完成后,您可以运行sudo do-release-upgrade并等待完成。

总结,如果想升级ubuntu版本,执行3步:
apt-get upgrade
apt-get dist-upgrade
do-release-upgrade

update 是同步/etc/apt/sources.list 和 /etc/apt/sources.list.d 中列出的源的索引,这样才能获取到最新的软件包.
upgrade 是升级已安装的所有软件包,升级之后的版本就是本地索引里的,因此,在执行 upgrade 之前一定要执行 update, 这样才能是最新的。
An update should always be performed before an upgrade or dist-upgrade.upgrade is used to install the newest versions of all packages currently installed on the system from the sources enumerated in /etc/apt/sources.list. Packages currently installed with new versions available are retrieved and upgraded