apt 和 apt-get 之间有什么区别?

2023-05-16

摘自:https://mp.weixin.qq.com/s/3385aI4ow34NGxDdzcLfqg

 

apt 和 apt-get 之间有什么区别?

strongerHuang 今天

以下文章来源于一口Linux ,作者土豆居士

关注+星标公众,不错过精彩内容

转自 | 一口Linux

 

使用ubuntu的朋友一定会接触一个命令就是apt-get 。使用该工具安装各种应用程序那叫一个爽。在 Ubuntu 16.04 发行后,apt使用渐渐频繁起来。

 

那么,apt-get 与 apt 命令之间到底有什么区别呢?

如果它们有类似的命令结构,为什么还需要新的 apt 命令呢?

是否 apt 真的比 apt-get 更好?

普通用户应该使用新的 apt 命令还是坚持旧有习惯继续使用 apt-get 呢?

彭老师将在本文中解释所有这些问题,我们希望本文结束时,你将会有一个更清晰的了解。

一、 概念

图片

apt 和 apt-get 之间的区别

1. Apt-get

Advanced Package Tool,又名apt-get,是一款适用于Unix和Linux系统的应用程序管理器。

最初于1998年发布,用于检索应用程序并将其加载到Debian Linux系统。主要用于自动从互联网的软件仓库中搜索、安装、升级、卸载软件或操作系统。

Apt-get成名的原因之一在于其出色的解决软件依赖关系的能力。其通常使用.deb-formatted文件,但经过修改后可以使用apt-rpm处理红帽的Package Manager(RPM)文件。

Apt-get在Linux社区得到广泛使用,成为用来管理桌面、笔记本和网络的重要工具。随着Linux在企业中的普及,Windows和Mac用户了解如何使用apt-get加载应用程序有一定的好处。

另外,随着单片机设备如Raspberry Pi的热度增加,apt-get在这些平台上是比较便捷的应用加载方式。如果你想要加载的应用需要程序库或另一个应用程序才能正常工作,apt-get会帮你找到并加载所需的程序库或应用代码。

apt-get当前的稳定版本是1.0.9.2,在2014年10月发布。

使用apt-get的主流Linux系统包括Debian和Ubuntu变异版本。大多数情况下,从命令行运行该工具。桌面上有几个图形前端可以使用,包括Synaptic Package Manager、Ubuntu Software Center、Aptitude和Kpackage。

Raspberry Pi和Beaglebone Black nanoLinux版用户可以很容易地使用apt-get加载程序,因为这些系统通常来自Ubuntu或Debian代码。是debian,ubuntu发行版的包管理工具,与红帽中的「yum」工具非常类似。

apt-get命令一般需要「root权限」执行,所以一般跟着sudo命令。

2. Apt

apt 命令行实用程序于2014年推出第一个稳定版本,用于 Debian 发行版 .deb 软件包安装。它最初在不稳定的Debian版本中使用,然后在Debian 8中成为标准。

在 Ubuntu 16.04 发行后,apt 开始流行,并以某种方式取代了 apt-get 。

随着 apt install package 命令的使用频率和普遍性逐步超过 apt-get install package,越来越多的其它 Linux 发行版也开始遵循 Ubuntu 的脚步,开始鼓励用户使用 apt 而不是 apt-get。

大多数人不了解 apt 和 apt-get 之间的区别,并且经常在使用一个或另一个时感到困惑。

两者都是开源命令行工具,用于管理软件包,例如安装,更新,升级和删除。

但是,它们之间仍然存在一些差异。

让我们看一些替代 apt-get 的 apt 命令,要查看这些命令,可以键入 apt help 或通过在终端中键入 apt man 来访问apt 手册页。它将显示与apt 相关的所有信息。

图片

apt help

二、 apt-get和apt之间的区别

apt 和 apt-get 之间的第一个区别是命令本身。例如,如果要使用 apt-get update 更新系统存储库索引,则可以运行:

#apt-get update

图片

 

使用 apt 则输入命令:

#apt update

图片

 

apt update 命令不仅更新存储库索引,还告知存储库中是否可用软件以及有多少新版本可用。

1. 命令对比

apt-getapt功能
apt-getapt安装软件包
apt-get removeapt remove删除软件包
apt-get removeapt remove更换所有包
apt-get  purgeaptpurge移除软件包及配置文件
apt-get upgradeapt upgrade更新所有软件包(自动处理依赖项)
apt-get autoremoveapt autoremove自动删除不需要的包
apt-get dist-upgradeapt full-upgrade在升级软件包时自动处理依赖关系
apt-cache searchapt search搜索应用程序
apt-cache showapt show显示装细节
  • 删除不必要的依赖apt-get autoremoveapt autoremove删除具有相关配置的软件包apt-get purgeapt purge

  • 在上表中,如果将 apt-get 替换为 apt,则所有命令都相同,除了 apt upgrade 命令。旧的 apt-get upgrade 命令更新系统中当前存在的所有软件包,它不会在系统上安装或删除现有软件包。新的 apt upgrade 命令将安装作为可升级软件包的依赖项添加的软件包。尽管类似于 apt-get 升级,但它也不会删除以前安装的软件包。

  • apt show 命令以字母顺序打印输出,并隐藏 apt-cache show命令显示的不太重要的信息。

  • apt 和 apt-get 之间的区别不仅限于命令,新的 apt 命令中已添加了另一个视觉功能,以使最终用户满意。每当在使用 apt 升级,apt 完全升级或 apt dist升级时更新软件包时,都会看到一个进度条,通知该过程的进度。

图片

apt install

  • 当使用 apt remove 或 apt purge 删除软件包时,它也会出现。

  • 此外,如果我们运行 「apt list --upgradeable」,它还会显示一些颜色,以提供有关存储库提供最新版本的软件包的清晰概述。

图片

apt list --upgradeable

2. 两个新命令

除了替换命令外,apt 引入了两个新命令:

新的apt命令功能
apt list列出包含条件的包(已安装,可升级等)
apt edit-sources编辑源列表
  1. apt list –当 apt list 命令与–installed或–upgradeable一起使用时,它将列出已安装,可安装或需要升级的软件包。

  2. apt edit-sources –使用此命令时,它将在编辑器中打开sources.list文件进行编辑。apt-get 仍然不能完全被 apt 取代,而且我认为它永远不会被完全终止。你可能正在考虑应该选择什么:apt 或 apt-get。在我看来,选择apt 是值得的,因为它提供了软件包管理的所有必需功能,并且更快,更友好且易于使用。

三、使用apt还是apt-get?

目前还没有任何 Linux 发行版官方放出 apt-get 将被停用的消息,至少它还有比 apt 更多、更细化的操作功能。对于低级操作,仍然需要 apt-get。

既然两个命令都有用,那么我该使用 apt 还是 apt-get 呢?

作为一个常规 Linux 用户,系统极客建议大家尽快适应并开始首先使用 apt。不仅因为广大 Linux 发行商都在推荐 apt,更主要的还是它提供了 Linux 包管理的必要选项。

最重要的是,apt 命令选项更少更易记,因此也更易用,所以没理由继续坚持 apt-get。

最后结大家提供两点使用上的建议:

  • apt 可以看作 apt-get 和 apt-cache 命令的子集, 可以为包管理提供必要的命令选项。

  • apt-get 虽然没被弃用,但作为普通用户,还是应该首先使用 apt。

参考:系统极客 

整理:土豆居士

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

apt 和 apt-get 之间有什么区别? 的相关文章

  • 如何编写 Nexus Rest Api 的 Get 方法?

    I have groupId artifactId and version 如何使用 Nexus Rest API 编写 GET 请求以获得进一步的工件描述 不确定您要查找什么信息 REST API 文档可在此处获取 Core API ht
  • 当 HTTP POST 重定向到 GET 时,POST 正文会发生什么?

    按照我之前的question https stackoverflow com questions 4939195 redirecting an http post 我需要将 HTTP POST 请求重定向到不同的服务器 我相信这可以使用 p
  • 可以使用 API GET 但不能使用 API POST

    我正在 VS 2013 中处理现有的 Windows 服务项目 我添加了一个 Web API 控制器类 我现在不记得它是 v2 1 还是 v1 控制器类 无论如何我将其称为 SyncPersonnelViaAwsApiController
  • 带参数的 REST GET 动词

    我正在和我的队友一起阅读一些 REST 我们正在编写一个 RoR 应用程序 它将向世界其他地方公开它的一些功能 我在这个团队的任务是制作一个公开日记报告的资源 如果你打电话 http root com journalreports http
  • Compojure 路由丢失参数信息

    My code defn json response data status status or status 200 headers Content Type application json body json generate str
  • 如何动态访问 Django 模型字段详细名称?

    我想访问我的模型字段 verbose name 我可以通过这样的字段索引来获取它 model meta fields 2 verbose name 但我需要动态获取它 理想情况下应该是这样的 model meta fields locati
  • jQuery 的 ajax 成功函数的额外参数

    我正在使用以下代码获取 XML 文件 function getMaps toLoad loadMaps length for var i 0 i lt loadMaps length i ajax type GET url loadMaps
  • 用 Java 创建一个简单的 HTTP 服务器?

    使用 Java 创建简单 HTTP 服务器的最简单方法是什么 是否有任何公共图书馆可以促进这一点 我只需要回应GET POST 并且我无法使用应用程序服务器 实现这一目标的最简单方法是什么 Use Jetty https github co
  • 在 IE 中通过 Iframe 传递参数时出现问题

    我正在尝试从我的网站执行 HTTP GET 到通过 iframe 引入的另一个网站 在 Firefox 上 您可以在源代码中看到 iframe src 中存在正确的 url 及其正确的参数 并且它可以工作 在 IE 上 您可以在源代码中看到
  • php 仅从 url 获取文件名,不包含 url 中存在的任何变量值

    我想获取没有任何文件名 GETphp 中 URL 的变量值 我的网址是http learner com learningphp php lid 1348 我只想找回learningphp php从网址 这个怎么做 I used basena
  • 使用 PHP 和 $_GET[''] 在 中传递多个变量

    我正在使用 PHP 根据变量创建链接 目前我有这行代码 我已经使用过多次并且工作完美 echo a href value2 a 以上全部在一行 在接收页面我有 assignmentName GET assignName 它从 URL 中检索
  • jQuery:从文件系统读取文本文件

    我正在尝试使用 jquery 读取文本文件 如下所示 LOAD file and split line by line and append divs get myFile txt function data var lines data
  • CMS 中搜索表单的 POST 与 GET 方法

    我有点被一件事困住了 只是无法决定在搜索表单中使用 POST 还是 GET 方法 通常我会使用 GET 方法来创建这样的表单 这样用户就可以为他们得到的结果添加书签 但这一次 搜索表单出现在管理区域中 因此结果很快就会相关 并且无需为结果添
  • 什么是 kCFErrorDomainCFNetwork 代码 = 303

    我尝试将文本字段数据发布到服务器 但是在发布时出现此错误 错误 错误域 kCFErrorDomainCFNetwork代码 303 操作无法完成 kCFErrorDomainCFNetwork 错误 303 UserInfo 0x13786
  • 底层连接已关闭:(HttpWebRequest) - C#

    我正在编写一段代码来通过 POST 请求验证用户名和密码 但收到一条错误消息 提示 底层连接已关闭 我正在尝试将带有 GET 请求的旧代码转换为带有 POST 请求的新代码 我的 GET 代码工作正常 旧代码 string url http
  • Yii搜索方法不起作用并且不与数据库中的数据进行比较

    您好 昨天我尝试了一种按日期时间创建搜索的方法 您可以看到链接 搜索任务 https stackoverflow com questions 23517282 yii search form by date from to criteria
  • 使用 Java 套接字进行 GET 请求

    我正在编写一个简单的程序来向特定的 url 发送 get 请求 http badunetworks com about http badunetworks com about 如果我将请求发送到 则该请求有效http badunetwork
  • 如何查看浏览器请求?

    我正在与另一位程序员合作 他最近向我发送了一个新的基于 JSON 的 API 来工作 他说我可以通过访问特定网站并查看浏览器请求来查看所有 API 调用的示例 我的问题是 如何查看我的浏览器请求 我之前曾使用 Wireshark 来分析我的
  • 如何将 $_GET 路径与 file_exists 一起使用并保证其安全?

    我有一个函数可以通过 jQuery 检查文件是否存在 该函数调用 PHP 脚本 在单击索引页面上的按钮更改某些图像时将使用该脚本 jQuery 函数 function fileExists path getJSON ajax fileExi
  • 在 Wheezy 7.8 (Raspbian) 上安装 R 3.1.2 失败

    我是 Linux 新手 尝试在我的 Raspberry 上安装最新的 R 版本 我的 Raspberry 在 Wheezy 7 8 上运行 我按照指示操 作on CRAN http cran r project org bin linux

随机推荐