Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

When I first started with Ubuntu using aptitude was the 'in-thing', with some stated improvements over apt-get. Am I correct in saying that apt-get has now 'caught up' with aptitude, and it makes little difference which is used (although it is preferable to choose one or the other, and stick with it)?

Moreover, with aptitude set to be removed from a default Ubuntu install, should everyone revert to apt-get, especially when guiding new users interested in the CLI?

share|improve this question

6 Answers 6

up vote 80 down vote accepted

As far as I can see, in 10.04, the main differences between aptitude and apt-get are:

  1. aptitude adds explicit per-package flags, indicating whether a package was automatically installed to satisfy a dependency: you can manipulate those flags (aptitude markauto or aptitude unmarkauto) to change the way aptitude treats the package.

    apt-get keeps track of the same information, but will not show it explicitly. apt-mark can be used for manipulating the flags.

  2. aptitude will offer to remove unused packages each time you remove an installed package, whereas apt-get will only do that if explicitly asked to with apt-get autoremove or specify --auto-remove.

  3. aptitude acts as a single command-line front-end to most of the functionalities in both apt-get and apt-cache.

  4. In contrast to apt-cache's "search", aptitude's "search" output also shows the installed/removed/purged status of a package (plus aptitude's own status flags). Also, the "install" output marks which packages are being installed to satisfy a dependency, and which are being removed because unused.

  5. aptitude has a (text-only) interactive UI.

I personally use only aptitude for my command-line package management (and I never use the text UI); I find its output more readable than apt-get/apt-cache.

However, if aptitude will be no longer standard on Ubuntu, there's no other choice than use apt-get in instructions and how-to documents.

(Personally, I'm rather disappointed to see it go away in 10.10; especially since the improvements of aptitude over apt-get are mostly on the usability side. I guess they deemed that those conversant with the command-line know how to get aptitude back, and those who don't use the command-line will not care...)

share|improve this answer
4  
aptitude search'es on package names, apt-cache on package name+description (We will just have to start every howto with sudo apt-get install aptitude) –  Source Lab Aug 9 '10 at 8:46
1  
2. However apt-get will tell you that there are unused packages and that you can remove them with apt-get autoremove. –  sepp2k Aug 9 '10 at 9:19
2  
One of the disadvantages of aptitude is the inability to consider pinning as done by apt-get –  txwikinger Oct 15 '10 at 14:21
2  
Aptitude correctly reads /etc/apt/preferences (and the pinning therein), but currently ignores /etc/apt/preferences.d/. It's a known bug so there is hope for it to be fixed soon. –  Riccardo Murri Oct 15 '10 at 14:45
2  
Aptitude has an option to retrieve the changelog easily: aptitude changelog package-name. I am not aware of such feature in apt-get. –  Lekensteyn Feb 13 '11 at 8:48

I guess it's a matter of personal choice by now. I find typing aptitude search makes more sense to me than apt-cache search, and I like that it tells me which packages I have installed right there in the search output, instead of having to run dpkg -l.

share|improve this answer
2  
+1 Agreed being able to see if an application is installed while searching is very handy. Although I do find that apt-cache search is a lot faster than aptitude search. –  Mark Davidson Aug 9 '10 at 8:02
    
I use a two-letter bash alias for apt-cache search, or I would probably be using aptitude search as well. –  belacq Mar 8 '11 at 0:28
    
I've noticed that apt-get's search is a bit more thorough than aptitude. The latter seems to only look at the package name, while the former also searches descriptions, I think. e.g. try searching for build-essential. –  Sparhawk Sep 23 '13 at 2:45

Earlier apt-get would not manage dependencies properly and therefore cause orphaned dependencies to remain in a system even after the package that was using them was uninstalled - this is not longer the case, to remove orphaned dependencies use

sudo apt-get autoremove

aptitude always did this right and tracks dependencies better, but now both package managers do the job.

On ubuntu it is better to use apt-get because its supported and endorsed by the company, on debian I would use aptitude

share|improve this answer
    
The last statement is not accurate. aptitude is supported just fine on Ubuntu and it is installed by default. There's no difference between Ubuntu and Debian in that regard, either. –  loevborg Aug 9 '10 at 8:19
3  
It is being removed from the default install in 10.10 –  kashif Aug 9 '10 at 9:57
1  
In my experience, aptitude has always been worse at tracking installed dependencies. It tended to remove unrelated ones when removing a program, and ended up breaking other programs in the process... –  Izkata Aug 13 '12 at 20:24

I would say that in my personal experience aptitude and apt-get have very similar functionality.

The main difference that come to mind that might effect a users choices are, that aptitude offers an ncurses interface and that it offers options for safe-upgrade and full-upgrade that can come in handy.

Personally I always use apt-get and recommend that new users use apt-get as well. With aptitude set to be removed from Ubuntu by default as you said, this still seems to be the best recommendation. As if they did want to use aptitude they will need to know how to use apt-get to install aptitude if they want it :)

share|improve this answer
    
could you explain what an ncurses interface is please? –  8128 Aug 9 '10 at 8:22
    
@fluteflute: ncurses is a library used to realize text user interface. en.wikipedia.org/wiki/Ncurses –  dierre Nov 12 '10 at 2:54

In addition to the other answers, it's also worth noting that apt-get often falls on its face for simple operations, and it has no ability to handle dependency version mismatches or broken packages (although it claims that broken packages can be fixed with apt-get install -f, I've literally never seen that work in my entire life).

For some reason, I still use apt-get by default, but when it encounters problems, I usually end up resolving them with aptitude, which never seems to encounter apt-get's numerous problems.

share|improve this answer

On a server I prefer Atitude because it comes with a pretty good interface to check package changelogs, selective upgrades and that kinds of stuff. apt-get is more quick though and I always use that if I just want to update everything without too much hassle.

share|improve this answer

protected by Braiam Aug 21 at 15:40

Thank you for your interest in this question. Because it has attracted low-quality answers, posting an answer now requires 10 reputation on this site.

Would you like to answer one of these unanswered questions instead?

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