If you see a message telling you that a menu entry has been created, it means the package has dropped a file into /usr/share/menu
describing one or more menu entry, as per the Debian menu policy. The documentation of the menu system (also available in /usr/share/doc/menu
) explains the syntax of this file. Each window manager is supposed to include the system menu. Gnome doesn't do the standard thing, though (so what else is new).
Gnome and KDE show a menu constructed from entries in /usr/share/applications/*.desktop
and /usr/share/applnk/**/*.desktop
, following the Freedesktop menu specification. Not all packages provide those. You can create a .desktop
file based on the Debian entries and put it in ~/.config/menus/
.
apt-get
You can run a simulation to see what would happen if you upgrade/install a package:
apt-get -s install <package>
To see all possible upgrades, run a upgrade
in verbose mode and (to be safe) with simulation, press n to cancel:
apt-get -V -s upgrade
apt-cache
The option policy
can show the installed and the remote version (install candidate) of a package.
apt-cache policy <package>
apt-show-versions
If installed, shows version information about one or more packages:
apt-show-versions <package>
Passing the -u
switch with or without a package name will only show upgradeable packages.
aptitude
The console GUI of aptitude
can display upgradeable packages with new versions. Open the menu 'Upgradable Packages'. Pressing v on a package will show more detailed version information.
Or on the command-line:
aptitude versions <package>
Passing -V
will show detailed information about versions, again to be safe with the simulation switch:
aptitude -V -s install <package>
Substituting install <package>
with upgrade
will show the versions from all upgradeable packages.
Best Answer
The most obvious difference is that
aptitude
provides a terminal menu interface (much like Synaptic in a terminal), whereasapt-get
does not.Considering only the command-line interfaces of each, they are quite similar, and for the most part, it really doesn't matter which one you use. Recent versions of both will track which packages were manually installed, and which were installed as dependencies (and therefore eligible for automatic removal). In fact, I believe that even more recently, the two tools were updated to actually share the same database of manually vs automatically installed packages, so cases where you install something with apt-get and then aptitude wants to uninstall it are mostly a thing of the past.
There are a few minor differences:
There are other small differences, but those are the most important ones that I can think of.
In short, aptitude more properly belongs in the category with Synaptic and other higher-level package manager frontends. It just happens to also have a command-line interface that resembles apt-get.
Bonus Round: What is wajig?
Remember how I mentioned those "companion" tools like apt-cache and apt-mark? Well, there's a bunch of them, and if you use them a lot, you might not remember which ones provide which commands. wajig is one solution to that problem. It is essentially a dispatcher, a wrapper around all of those tools. It also applies sudo when necessary. When you say
wajig install foo
, wajig says "Ok,install
is provided byapt-get
and requires admin privileges," and it runssudo apt-get install foo
. When you saywajig search foo
, wajig says "Ok,search
is provided byapt-cache
and does not require admin privileges," and it runsapt-cache search foo
. If you use wajig instead of apt-get, apt-mark, apt-cache and others, then you'll never have this problem:If you want to know what wajig is doing behind the scenes, which tools it is using to implement a particular command, it has
--simulate
and--teaching
modes.Two wajig commands that I often use are
wajig listfiles foo
andwajig whichpkg /usr/bin/foo
.