In Debian >= 8, we now have apt as well as apt-get. How does apt compare to apt-get, and why did the developers decide to create a new program?

A quote from the Debian Administrator's Handbook:

APT is a vast project, whose original plans included a graphical interface. It is based on a library which contains the core application, and apt-get is the first front end — command-line based — which was developed within the project. apt is a second command-line based front end provided by APT which overcomes some design mistakes of apt-get.

What design mistakes are they talking about?

closed as primarily opinion-based by Jakuje, garethTheRed, Jeff Schaller, vonbrand, slm Mar 18 '16 at 0:16

Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise. If this question can be reworded to fit the rules in the help center, please edit the question.

  • I don't believe, discussing the merits or lack thereof, of applications is suitable for this site, as the discussion is more about design than the technical "how-to"s nature of questions here – MelBurslan Mar 17 '16 at 18:54
  • @MelBurslan Well, which SE would you suggest for a question like this? You could flag me, and see what a mod has to say... – Questionmark Mar 17 '16 at 18:55
  • I don't believe there is a SE section for these discussions. The atmosphere here is figuring out how to fix things, not really discussing the merits of OSes or applications. I think your best bet is finding a hard-core developer forum, especially one about APT or apt-get. I am not sure what else to say. – MelBurslan Mar 17 '16 at 19:03
  • 1
    I'd have an easier time voting to reopen this question if it focused on the functional differences (i.e. title and 2nd sentence), and omitted the last sentence. – Jeff Schaller Sep 14 '17 at 16:26
  • @JeffSchaller I get where you are coming from, but if I got rid of that part of the question, it would make the accepted answer not make much sense -- and it really is a good answer. Any ideas? – Questionmark Sep 14 '17 at 17:01

apt is mostly intended as a new binary with some of the commonly used features of both apt-get and apt-cache (with more to be added later, probably), and with a "simplified" interface. Most of APT's available command line functionality is exposed via apt-cache and apt-get, but these commands aren't ideal from a user experience point of view. Since those two binaries were intended as test/example commands (originally by Jason Gunthorpe, I believe), and not for serious end-user usage.

The apt command is meant to be easier to use, and more "user-friendly". People often find it confusing that functionality is split between apt-get and apt-cache for instance.

See comments by Michael Vogt in his blog post: apt 1.0.

I don't think it is particularly meant to be about overcoming design mistakes.

So, it's not intended as an apt-get replacement.

For more information, try asking the APT developers themselves. They are super-cool, but they don't hang out on Stack Exchange. Try #debian-apt on OFTC instead.

Comments from Michael Vogt on the said #debian-apt channel; I posted the question link on the IRC channel.

<mvo> faheem: "design mistakes" is a bit of a strong word - we are just scared of changing anything in apt-get because it's used in a gazillion scripts by now. "apt" lets us do that plus it's easier to type and we can combine apt-get/apt-cache. so I think the answers are all fine, the key part is really that apt is more convenient to use/type.

<mvo> faheem: [snip] the gist is that apt/apt-get/apt-cache all share the same library and code, just some tweaks to the default.

  • Based on your quotes from Michael Vogt, I assume that you already asked them my question...? – Questionmark Mar 17 '16 at 21:14
  • @Questionmark No, I just posted the question on the IRC channel. – Faheem Mitha Mar 17 '16 at 21:44

From the man page:

   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

   ·   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.

Not the answer you're looking for? Browse other questions tagged or ask your own question.