7

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?

10
  • 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
    Commented Mar 17, 2016 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... Commented Mar 17, 2016 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
    Commented Mar 17, 2016 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
    Commented Sep 14, 2017 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? Commented Sep 14, 2017 at 17:01

2 Answers 2

12

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.

2
  • Based on your quotes from Michael Vogt, I assume that you already asked them my question...? Commented Mar 17, 2016 at 21:14
  • @Questionmark No, I just posted the question on the IRC channel. Commented Mar 17, 2016 at 21:44
4

From the man page:

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

Not the answer you're looking for? Browse other questions tagged .