apt和apt-get有什么区别?


457

我了解了aptSoftpedia中添加到1.0 的新的花哨进度栏,以及如何在此处启用它。但是在运行时sudo apt-get update,我没有看到花哨的进度条。再次阅读第二个链接时,该解决方案明确要求您使用sudo apt update

因此,我的问题是之间的差异aptapt-get。我以为他们是同一个人。


1
AFAIK仅在Trusty中可用。以下是启用它们的方法:askubuntu.com/questions/445245/…–
赛斯

8
鉴于@Seth的评论已使用了将近2年,我想我要补充一点,因为它开箱即用,可安装且可用。启用它们不需要任何操作,只需使用apt代替apt-get(我在15.10上)
Madivad

Answers:


399

它们是Trusty中提供的非常相似的命令行工具。 apt-getapt-cache最常用的命令在中可用apt

apt-get可以被视为较低级别的“后端”,并支持其他基于APT的工具。apt是为最终用户(人类)设计的,其输出可能会在版本之间更改。

apt(8)的注释:

The `apt` command is meant to be pleasant for end users and does not need
       to be backward compatible like apt-get(8).

看看这篇文章,了解有关新工具的更多信息:

以上链接的简介(带有*的更正):

此版本的重大新闻是,我们包含了一个新的“ apt”二进制文件,该二进制文件结合了apt-get和apt-cache中最常用的命令。这些命令与apt-get / apt-cache对应命令相同,但配置选项略有不同。

当前,apt二进制文件支持以下命令:

  • list:类似于dpkg list和可以和--installed或标记一起使用 --upgradable
  • 搜索:工作方式与上apt-cache search字母相同。
  • show:工作原理类似,apt-cache show但隐藏了一些人们不太在乎的细节(例如哈希)。完整记录apt-cache show当然仍然可以通过以下方式获得。
  • 更新:就像常规的apt-get update启用了颜色输出一样。
  • install,remove:在dpkg运行期间添加进度输出。
  • 升级:与apt-get upgrade --with-new-pkgs*
  • 全面升级:的更有意义的名称dist-upgrade
  • edit-sourcessources.list使用编辑$EDITOR
  • 政策:就像apt-cache policy

您可以通过以下方式启用/禁用安装进度[bar]:

# echo 'Dpkg::Progress-Fancy "1";' > /etc/apt/apt.conf.d/99progressbar

3
只是好奇-apt升级是否等同于“ upgrade --with-new-pkgs”(而不是dist-upgrade,IIRC会默认将其删除并删除)?
zeratul021 '16

奇怪的是apt upgrade给我一个错误,其中apt-get upgrade仅在PPA没有发布文件时才显示警告。
Tor Klingberg

1
那篇博客文章认为apt upgradeapt-get dist-upgrade --with-new-pkgsdist-upgrade可以安装新软件包并可以将其删除。除了UI,apt upgradeapt-get upgrade --with-new-pkgs。见JungleMartin的答案APT(8)upgrade:“如果需要,来满足相关的新软件包将被安装,但现有的包永远不会被删除。”
伊莱亚·卡根

3
可能值得一提的是,默认情况下,apt从16.04开始不会保存下载的软件包,而apt-get会保存。
doug

69

我写这篇文章,apt手册页(我的apt软件包版本:1.0.1ubuntu2.8)包括以下部分:

DIFFERENCES TO APT-GET(8)
   The apt command is meant to be pleasant for end users and does not need
   to be backward compatible like apt-get(8). Therefore some options are
   different:

   ·   The option DPkg::Progress-Fancy is enabled.
   ·   The option APT::Color is enabled.
   ·   A new list command is available similar to dpkg --list.
   ·   The option upgrade has --with-new-pkgs enabled by default.

2
这是正确的答案(对于Debian和Ubuntu以及其他衍生产品(如Mint))。特别是,运行sudo apt upgrade将执行与相同的操作sudo apt-get upgrade --with-new-pkgs。它将安装新软件包,但 sudo apt-get dist-upgrade有所不同,它不会删除旧软件包(当然,安装新版本的同一软件包除外sudo apt-get upgrade)。man apt进一步证实了这个答案是正确的。
伊莱亚·卡根

我正在回滚您的编辑回滚,因为a)您的格式需要不必要的滚动,并且b)您复制的文本不正确,该选项不是DPkgPM::...,而是DPkg::..,如联机帮助页所示。
muru 17-10-3

2
RTFM的奖励积分
Thufir

选项“ check”不适用于apt。我必须使用“ apt-get check”。为什么?
Juan

22

有多种工具可以与Advanced Packaging Tool(APT)交互,并允许您在基于Debian的Linux发行版中安装,删除和管理软件包。apt-get是一种广泛使用的命令行工具。另一个流行的工具是同时具有GUI和命令行选项的Aptitude

如果您使用过apt-get命令,则可能会遇到许多类似的命令,例如apt-cacheapt-config等等。这就是问题所在。

您会看到,这些命令的级别太低了,它们具有如此众多的功能,而普通的Linux用户可能从未使用过。在另一方面,最常用的包管理命令散落apt-getapt-cacheapt-config

apt命令已被引入来解决这个问题。apt包含的一些最广泛使用的功能apt-getapt-cacheapt-config留下了晦涩难懂的功能。

使用apt,您不必费力地从apt-getapt-cacheapt-configapt更加结构化,并为您提供管理软件包所需的必要选项。

底线: apt =从最常用的命令选项apt-getapt-cacheapt-config

我已经详细写了apt和apt-get之间区别


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.