apt-get vs. aptitude
I'm running Sarge v3.1
Being new to Debian I'm doing alot of reading. I'm finding seemingly conflicting infomation, but I think it is related to the different releases (potatoe, woody, sarge..).
Some docs say to use 'apt-get', some say to use 'aptitide'.
Is it correct that if I'm using Sarge I should be using aptitude and not apt-get? aptitude seems to be more comprehnsive with regards to package install and cleanup after deleting a package. What are the other differences?
aptitude is a curses (terminal-based) front-end for apt. It allows you to interactively pick packages in an interactive interface rather than specifying it in a command on the command line (like with apt-get). If you want a similar front-end but with GUI, you can use synaptic.
You can also run aptitude from the command line. For example
Aptitude is said to deal with dependencies better than apt-get. For example, say you install a package which automatically installs some library packages because it depends on them. When you remove this package with apt-get, it won't remove the libraries this package installed, although they aren't used anymore.
When you install that package with aptitude and remove it with aptitude, aptitude 'detects' that those library packages aren't used anymore and will therefore automatically remove thm.
I myself switched from apt-get to aptitude.
One nice feature in aptitude: it keeps a log of its actions in /var/log/aptitude . Apt-get doesn't keep any log, I don't know about synaptic.
Usage: aptitude [-S fname] [-u|-i]
aptitude [options] <action> ...
Actions (if none is specified, aptitude will enter interactive mode):
install - Install/upgrade packages
remove - Remove packages
purge - Remove packages and their configuration files
hold - Place packages on hold
unhold - Cancel a hold command for a package
markauto - Mark packages as having been automatically installed
unmarkauto - Mark packages as having been manually installed
forbid-version - Forbid aptitude from upgrading to a specific package version.
update - Download lists of new/upgradable packages
upgrade - Perform a safe upgrade
dist-upgrade - Perform an upgrade, possibly installing and removing packages
forget-new - Forget what packages are "new"
search - Search for a package by name and/or expression
show - Display detailed information about a package
clean - Erase downloaded package files
autoclean - Erase old downloaded package files
changelog - View a package's changelog
download - Download the .deb file for a package
-h This help text
-s Simulate actions, but do not actually perform them.
-d Only download packages, do not install or remove anything.
-P Always prompt for confirmation or actions
-y Assume that the answer to simple yes/no questions is 'yes'
-F format Specify a format for displaying search results; see the manual
-O order Specify how search results should be sorted; see the manual
-w width Specify the display width for formatting search results
-f Aggressively try to fix broken packages.
-V Show which versions of packages are to be installed.
-D Show the dependencies of automatically changed packages.
-Z Show the change in installed size of each package.
-v Display extra information. (may be supplied multiple times)
-t [release] Set the release from which packages should be installed
-o key=val Directly set the configuration option named 'key'
--with(out)-recommends Specify whether or not to treat recommends as
-S fname: Read the aptitude extended status info from fname.
-u : Download new package lists on startup.
-i : Perform an install run on startup.
Also what I like is you can have multiple links in your repository for each section.Aptitude will scan through all the available links and retrieve whatever is available for update.
It just handles pakages better than apt-get.I never use the ncurses version but only via command line.I used ncurses once to set some preferences but thats it.I turn off "remove unused pakages" all the time,I dont like when it does this.
Another note,make sure if you use aptitude you stick with aptitude.Useing another manager to remove a pakage will just make aptitude install it automatically next time.
If you want to browse pakages just use kpakage since it comes with kde(if you use kde) then install with aptitude.Or browse via apt-cache search
Thanks everyone. This makes is great info.
All three packages do the same bottom line, just in different ways with different options. I don't think one is better than the other, it is all personal preference. I have used apt from the beginning, and I love it. It is the most archaic, and doesn't automatically load dependencies like aptitude or synaptic, but it does list the dependencies which you can manually install if you wish. I have grown quite fond of apt, and studied the apt how-to constantly for the first month I was running Debian.
No matter which package manager you wish to use, just keep one thing in mind, do not switch back and forth. The three P.M.'s do not keep track of each other; so if you use apt for the first 6 months, and then try aptitude, it will try uninstalling all of the packages you have installed over the previous 6 months. Many a poor soul has made the mistake thinking that aptitude knew what it was doing.
Like I said, apt doesn't have all of the features that the other two have, but you do have the same capabilities. Apt will remove most dependencies if you remove with --purge. To keep dependencies clean, you have debfoster, deborphan, and autoclean. And to keep buggy packages from getting installed, you have apt-listbugs, and like Xian said, a system log is kept at /var/log/dpkg. The bottom line is to find one that works for you and have fun with it.
If you want to use Apt and install suggested/reccomended packages, as well as remove orphaned files then you can use the wajig tool.
Or, if you want to configure aptitude to install both recommended & suggested packages, or to not install them, see my post in this thread:
You can also set-up Synaptic to show orphaned packages which can be selected for removal. Here's the quick how-to:
From the main toolbar in Synaptic goto
Settings > Filters
Name the filter in the top dialogue box.
The name 'Orphaned' is good choice.
Click 'Delselect All'
Now from the main window:
Click 'Custom' and highlight 'Orphaned'
There will be listed all your orphaned packages.
Review for any that should not be removed.
Purge or remove any others you desire.
If you use the "interactive" UI of aptitude (by just typing "aptitude"), you can highlight a package and then press Shift + c and this will fetch the changelog for that package and show it in your default pager. I use this feature quite often to decide if I want to upgrade a package or not. I don't know if other frontends for apt have this feature.
Synaptic has this feature:
Package > Download Changelog
|All times are GMT -5. The time now is 03:20 PM.|