本文翻译自Difference Between apt and apt-get Explained - It's FOSS
译者注:本人尽量以通俗易懂的方式展现原文的内容,限于经验和水平,错误之处欢迎指正。
目录
0. 写在前面
1. apt 与 apt-get
2. 首先为什么引入apt?
3. apt和apt-get的区别
4. apt和apt-get相关命令的区别
5. apt-get已被弃用?
6. 应该使用apt还是apt-get?
结论
引入apt命令是Ubuntu16.04的一个显著的新特性。但实际上,apt的第一版本发布于2014年,但直到2016年Ubuntu16.04发布时才得到关注。
常见的是,用apt install package代替apt-get install package。事实上,许多其他的Liunx发行版本也在跟随Ubuntu的步伐,开始鼓励用户使用apt代替apt-get。
也许你想知道apt-get和apt的区别?
如果他们有相似的命令结构,那么新的apt命令主要针对的是什么需求?
也许你也在思考apt是否优于apt-get?
应该使用新的apt命令,还是坚持使用旧的、也不错的apt-get命令?
我将在本文解释这些疑问,也希望本文能给你一个清晰的诠释。
先简单说几句,和Linux Mint使用者有关的故事。
几年前,Linux Mint实现了一个python包装器,名叫apt,它实际上使用apt-get,并提供了很多友好的选项。
请注意,我们将要讨论的apt和这个Linux Mint的apt不同。
在探究apt和apt-get的区别前,我们先了解一下这些命令产生的背景,以及具体想解决什么问题。
Debian是很多Linux发行版本的母版,比如Ubuntu,Linux Mint, elementary OS等。它有一个稳健的软件包系统,每一个组件和硬件程序构建成软件包,并安装到你的系统中。Debian使用一个名叫Advanced Packaging Tool (APT)的工具集,来管理这个软件包系统。
请注意:请不要将APT工具集与apt命令混淆,他们并不相同。
有很多工具可以与APT进行交互,允许你去安装、卸载和管理基于Linux发行版本的包。apt-get就是这样的一个命令行工具,且广泛使用。
另一个流行的工具是Aptitude ,同时带有GUI和命令行的选项。
如果你读过我的apt-get命令指南,你可能遇到过一些类似的命令,比如apt-cache。
其实,这就是问题产生的地方。
你看,这些命令的用法很底层,他们有很多普通Linux用户也许永远不会使用的功能。另一方面,常用的软件包管理命令散落在apt-get和apt-cache中。
引入apt命令集就是为了解决这个问题。apt由一些来自apt-get和apt-cache且广泛使用的特性组成,同时搁置了那些令人费解且少用的特性。它也能管理apt.conf文件。
使用apt,你不必在apt-get和apt-cache命令间来回切换。apt更加的结构化,给你提供必要选项,来管理软件包。
要点:apt=来自apt-get和apt-cache的常用功能选项。
所以,有了apt,你就一次性获得所有必需的工具。不会迷失在众多的命令选项中。Apt的主要目标是提供一种用户愉悦的方式来高效处理软件包。
当Debian提到“用户愉悦的方式”,它实际上在说,它有少数但高效的命令行选项,但以一种更有条理的形式展现。最重要的是,它默认提供少数几个选项,并能切实地帮助到用户。
举个例子,用apt安装或卸载软件包时,你可以看到一个进度条。(下图)
当你更新仓库repository数据库时,apt能展示可升级的软件包数量。(下图)
当然,如果你使用apt-get附加的命令选项,也能获得相同的功能。但apt以默认的形式提供,减少了一些麻烦。
虽然apt的确提供一些apt-get类似的功能选项,但是它不与apt-get向下兼容。这意味着,如果你仅用apt代替apt-get命令中的apt-get,将不会一直有用。
我们来看看apt命令取代了apt-get和apt-cache的哪些命令选项。
apt命令 |
取代的命令 |
功能 |
apt install |
apt-get install |
安装一个软件包 |
apt remove |
apt-get remove |
移除一个软件包 |
apt purge |
apt-get purge |
移除包及相关配置 |
apt update |
apt-get update |
刷新仓库索引 |
apt upgrade |
apt-get upgrade |
升级所有可升级的软件包 |
apt autoremove |
apt-get autoremove |
移除多余的软件包 |
apt full-upgrade |
apt-get dist-upgrade |
升级软件包,并自动处理依赖 |
apt search |
apt-cache search |
搜索某个程序 |
apt show |
apt-cache show |
显示软件包详情 |
apt也有一些自己独有的命令。
apt的新命令 |
命令对应的功能 |
apt list |
列举各类软件包 (已安装,可升级,等等) |
apt edit-sources |
编辑软件源列表(sources list) |
这里需要指出的是,apt处于持续开发中。因此,在未来的版本中,也许你能看见一些新选项加入进来。
如果你想多学一点,我推荐阅读我撰写的“如何使用apt命令”指南,里面有一些例子。
我没有找到任何关于apt-get不继续使用的例子。事实上,也不应如此。它仍然有许多apt没有的功能。比如,以脚本形式展开底层级别的操作等,仍将使用apt-get。
你可能在思考应该使用apt还是apt-get。作为一个常规的Linux使用者,我的答案是使用apt。
apt是Linxu发行版本目前推荐的命令。它提供管理软件包的必要选项。最重要的是,它的精简命令选项更容易使用,且更容易记住。
我觉得,没有理由坚持使用apt-get,除非你打算做一些指定的操作,而这些操作使用了apt-get的更多特性。
我希望,我已经解释清楚了apt和apt-get的区别。
最后,总结一下apt与apt-get的异同:
1) apt是apt-get和apt-cache命令的子集,提供软件包管理的必要命令。
2) 尽管apt-get未被取代,但作为常规使用者,你应该尽量使用apt。