Essentially what I'm looking for is the Debian equivalent of:
yum list available
to show me which packages are available (though not currently installed). I'd prefer something that can be run from the console as this is on a remote server. Thanks.
Super User is a question and answer site for computer enthusiasts and power users. It only takes a minute to sign up.Sign up to join this community
grep-dctrl and its derivatives provide a great way to query the apt cache files. (You can install these tools on ubuntu with
sudo apt-get install dctrl-tools
In the case of available (but not necessarily installed) packages, you can use
grep-available. For example, to list all available packages:
grep-available -s Package .
aptitude can show you a list of Not Installed Packages by just launching it.
You can also get a list of not installed packages with
aptitude by using:
aptitude -F "%p" search "?not(?installed)"
Note that with the new multi-arch packages, you'll get packages for other architectures listed in this result. For example, I get:
aptitude -F "%p" search "?not(?installed)" | grep "^bash:" bash:i386
I have the
bash package installed, but it's the amd64 version, since my OS is installed with the amd64 version of Ubuntu Precise. If you don't want to see these packages for other architectures, you can exclude lines containing
aptitude -F "%p" search "?not(?installed)" | grep -v ':'
apt-cache for this purpose:
apt-cache search package
apt-cache only uses the package cache on the system, make sure that this cache is up to date:
You can also use the utility
apt-file if you know the name of a file you want to search for; this has to be added to the system however. For example:
apt-file search somefilename
I tend to use
apt-cache in one of the following ways:
apt-cache search package | sort | grep item
(This shows you things that have item actually in their summary or names.)
apt-cache search thing | sort | less
(This searches for thing then sorts it for pleasant viewing with
My point of view is to work with commands installed by default, and avoid extra packages if there is not any particular reason.
In my Debian with GNU bash these simple commands
apt list apt list --all-versions
gives a list of anything (installed and not installed). I can then limit the results with grep "installed" or grep -v "installed". It also can be combined with one or more package names (wild marks accepted).
Switch "-all-versions" provides in output separate lines for each package version (stable,testing, unstable, experimental).
Simple "apt list" gives only one (the highest priority) version.
Taking your question strictly (you want to show a list of not installed packages), try using
(edited according to comments below)
# apt-get update # dpkg -l '*' | egrep --invert-match '^i'
Not sure of the exact syntax though, as I'm writing this on a windows box and no way to check. Maybe try to change what you grep on