I have successfully installed some packages using the command line 'sudo apt-get install packagename' when I have known in advance that those packages are available. But how can I search for or get a list of what is available in the repositories?
To search for a particular package by name or description:
From the command-line, use:
apt-cache search keyword
where the search keyword can be all or part of a package name or any words used in its description.
apt-cache search proxy includes both these packages:
tinyproxy - A lightweight, non-caching, optionally anonymizing HTTP proxy tircd - ircd proxy to the twitter API
Note: the list may be long, so you can pipe the output to
lessto make it scrollable one line or one screen at a time, i.e.
apt-cache search something | less.
To get a list of ALL packages
apt-cache search .
Use Synaptic if you have X-forwarding enabled or are on a desktop
Synaptic is often a more convenient way to do this, but requires at least an X server on your end (unless you're running a desktop environment). Install with
sudo apt-get install synaptic if necessary.
Synaptic on ssh'd server via X forwarding:
Synaptic running locally on Ubuntu Desktop:
apt-cache policytoo, it gives you more information about the sources.– yclianMar 21, 2015 at 2:44
apt-get, you can just run
apt-cachewithout any arguments and get the short help/cheatsheet info. You can always read the manpages on it for longer help. (i.e.
man apt-cache)– pd12Oct 28, 2015 at 1:08
Supposing that I'm foolish enough to want to live the results into
apt install, is there a smart way to do that? The output from this function is messy. One could use the first word from each line, but there should be an easier way. Nov 4, 2016 at 7:41
you can also search online. packages.ubuntu.com Sep 8, 2017 at 5:18
If you only need the names of all the packages available just do
apt-cache pkgnames– flaz14Feb 15, 2018 at 11:15
apt all format the output differently. (None of these require the use of
sudo when searching for a package.) I prefer using
apt for its readability. It highlights the package name and puts a space between the different packages. It also has
[installed] listed next to each package that is already installed. Usage:
apt search package-name
7if i run say '$ apt search firefox' it produces tons of output results :( Jan 2, 2018 at 17:45
1You could narrow your search with something like:
apt search firefox | grep -A 3 firefox– jbrockApr 16, 2018 at 16:01
4Another option to narrow the search:
apt search ^firefoxor
apt search ^firefox$– jbrockJul 26, 2019 at 8:24
3@jbrock if your output is not a tty but a pipe like in
apt search firefox | grep -A 3 firefoxthen you should use
apt-cache searchinstead. The output of the
apttool is meant for human consumption and can change without notice. The
apt-cachetools have stable output that can be used in scripts and pipelines like yours.– joschMay 25, 2020 at 10:53
@user3804598 true, a better option is
apt list firefox– FadiFeb 5, 2022 at 19:50
You can also use aptitude from the command line:
aptitude search xxxxxx
2The annoying thing about this one is that Ubuntu doesn't seem to give it to you by default. Up until I learnt about
apt-cache, I was always having do so
apt-get install aptitudeon each new box I installed. However, since I can't find a way to get
apt-cacheto show me whether it's installed, I guess I'll have to keep doing that for a bit :-)– user9184May 5, 2016 at 6:39
2@paxdiablo Just create two line shell script (second line someting like
dpkg --list | grep "$1") or add shell function to this effect into your
.bash_login... :-)– FooFAug 12, 2016 at 3:43
The apt-cache command line tool is used for searching apt software package cache. In simple words, this tool is used to search software packages, collects information of packages and also used to search for what available packages are ready for installation on Debian or Ubuntu based systems.
To find out the package name and with it description before installing, use the ‘search‘ flag. Using “search” with apt-cache will display a list of matched packages with short description. Let’s say you would like to find out description of package ‘vsftpd‘, then command would be.
apt-cache search SearchTerm
$ apt-cache search vsftpd
The possible output would be:
vsftpd - lightweight, efficient FTP server written for security ccze - A robust, modular log coloriser ftpd - File Transfer Protocol (FTP) server yasat - simple stupid audit tool
To find and list down all the packages starting with ‘vsftpd‘, you could use the following command.
$ apt-cache pkgnames vsftpd
You may also want to run the results through a more, or even a grep. For instance:
apt-cache search firefox | grep plugin
Assuming you want to do all of this from the terminal use the following:
first I recommend you update the package index files so the list of all files in the repository you are about to create is up to date
sudo apt-get update
then use "search regex" function in
apt-cache where "regex" stands for Regular Expression and is the pattern given to search. For more info about search patterns you can look up manual regex(7) by command
man 7 regex or in English. A regex variable equal to . will suffice.
apt-cache search .
The above will give you ALL the results but it is not in any order that is particularly helpful for browsing.
So finally we can sort by dictionary order using
sort -d and show only a page at a time using
apt-cache search . |sort -d |less
Unfortunately I don't have enough rep to add this a comment on the main answer.
But I was trying to find
g++- - alike packages with
apt-cache search. It's important to know in this case that
keyword is a regular expression so
apt-cache search g++- will not have helpful results.
apt-cache search "g[+][+][-]" would be the way to go
apt list <package> is how I recommend searching for packages. If you don't get any matches or if you're not sure what the package is named, try wrapping the argument in asterisks to get more results. For instance
apt list *chrome* will yield the following:
Listing... chrome-gnome-shell/focal,focal,now 10.1-5 all chromium-chromedriver/focal-updates 1:85.0.4183.83-0ubuntu0.20.04.2 amd64 chromium-lwn4chrome/focal,focal 1.0-3 all google-chrome-beta/stable 99.0.4844.17-1 amd64 google-chrome-stable/stable,now 98.0.4758.80-1 amd64 google-chrome-unstable/stable 100.0.4867.0-1 amd64 mkchromecast-alsa/focal,focal 0.3.8.1-1 all mkchromecast-gstreamer/focal,focal 0.3.8.1-1 all mkchromecast-pulseaudio/focal,focal 0.3.8.1-1 all mkchromecast/focal,focal 0.3.8.1-1 all node-chrome-trace-event/focal,focal 1.0.2-1 all openchrome-tool/focal 1:0.6.0-3build1 amd64 python3-pychromecast/focal,focal 4.1.0-1 all ruby-chromedriver-helper/focal,focal 2.1.0-7 all xserver-xorg-video-openchrome-hwe-18.04/focal 3:14.5 amd64 xserver-xorg-video-openchrome/focal 1:0.6.0-3build1 amd64
Alternatively, if you'd like a description of each package, run
apt search --names-only <package>. Make sure to include
--names-only for more accurate results.
The OP aimed only to
apt, which was already answered (
apt search). Some people might end up here searching for solutions for other (more modern) alternatives.
Nowadays we have other sources for apps:
npm, to name a few popular ones. All of them also works with
You could handle all of the above and others with
meta-package-manager, which solves XKCD #1654 (don't look #927).
apt-file search part_of_package_name
"Extended variant" is useful in case of excessive number of results:
apt-file search part_of_package_name | grep another_part_of_name
Example of searching for ssh server package if I do not know the name is ssh-server or sshserver or server-ssh etc.:
apt-file search ssh | grep server
Steps to prepare
apt-file search for searching. It should be done before first usage:
sudo apt-get install apt-file sudo apt-file update