Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I can't believe there are Debian/Ubuntu folks still not using "aptitude". Or that it's not installed by default.


I've been using Ubuntu with apt-get for quite a few years now. What additional funcionality does aptitude offer over "plain" apt-get?


My favourite feature is the search capabilities, which are well integrated and extremely powerful.

    # installed packages with yaml in the name
    aptitude search '~i yaml'

    # installed packages requiring yaml
    # (~D means depends on)
    aptitude search '~i ~D yaml'

    # packages whose name starts with lib and
    # mentioning SQL in their descriptions
    aptitude search '^lib ~d sql'

    # installed packages from some non-standard repo
    # apt-cache policy describes package origins
    aptitude search '~i ?origin(apt.opscode.com)'

    # why is libvirt0 installed?
    aptitude why libvirt0

    # which ubuntu metapackage is keeping libvirt0 installed?
    aptitude why '~i ubun' libvirt0 

    # don't keep any transitional package installed
    sudo aptitude markauto '~i ~d transitional'

    # purge ganeti packages
    sudo aptitude purge '~i ganeti'


I didn't know about this matching. Awesome.

Now I'm even more annoyed that our servers are all CentOS :(


The biggest advantage is when removing packages; its dependency resolution is (supposedly) much better so it's able to find and remove orphan packages more accurately without hosing your system.

It's also got a much friendlier set of commands:

  $ apt-get upgrade vim # aptitude upgrade vim

  $ apt-get dist-upgrade # aptitude full-upgrade

  $ apt-cache search # aptitude search

  $ apt-get install --reinstall vim # aptitude reinstall vim

  $ apt-get remove --purge vim # aptitude purge vim
The list goes on.

It's also got an awesome ncurses based interactive interface if you just type:

  $ aptitude
Great for sysadmins who miss synaptic or anyone who feels like a GUI is just too mainstream.


apt-get also is able to remove orphaned libraries.

Among other "advantages" of aptitude, it can be terribly slower than apt-get. And it has a "smart" dependency engine that often proposes convoluted solutions (involving uninstalling packages I don't want uninstalled) when apt-get will simply update the dependency and their dependents... But at least, if you don't agree with the first solutions, it has others (sometimes including the one apt-get chooses).


What's the history of the aptitude and apt-* family of commands? Why do they both exist?



Aptitude has an optional screen-oriented GUI, much better search and filtering capabilities, a listing of "new" packages each time you update, and an excellent dependency resolver.


I ran "aptitude dist-upgrade" on my netbook once.

It ate up the entire 1 GB of RAM and got OOM killed before it could finish computing dependencies.

I shouldn't need a swap partition just to update packages. So now I use apt-get if I'm upgrading a lot of packages at once. aptitude for other tasks.


On Debian, I definitely use aptitude. However it hasn't been updated for Ubuntu's recent work on multiarch, and thus actions requiring dependency resolution are not usable anymore on many Oneiric installs (those that are amd64 with a few i586 packages).


I think there's a perception that aptitude can be to smart for its own good. From the Debian Reference:

"Although the aptitude command comes with rich features such as its enhanced package resolver, this complexity has caused (or may still causes) some regressions such as Bug #411123, Bug #514930, and Bug #570377. In case of doubt, please use the apt-get and apt-cache commands over the aptitude command."

http://www.debian.org/doc/manuals/debian-reference/ch02.en.h...




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: