How do I search for a package?
Solution 1:
You seem to know how the package should be called, or at least what a part of its name should be.
apt search
doesn’t look like the best tool for this task, use apt list
instead:
$ apt list apache\*
Listing... Done
apache2/bionic-updates,bionic-security 2.4.29-1ubuntu4.11 amd64
apache2-bin/bionic-updates,bionic-security 2.4.29-1ubuntu4.11 amd64
apache2-data/bionic-updates,bionic-updates,bionic-security,bionic-security 2.4.29-1ubuntu4.11 all
apache2-dbg/bionic-updates,bionic-security 2.4.29-1ubuntu4.11 amd64
apache2-dev/bionic-updates,bionic-security 2.4.29-1ubuntu4.11 amd64
apache2-doc/bionic-updates,bionic-updates,bionic-security,bionic-security 2.4.29-1ubuntu4.11 all
apache2-ssl-dev/bionic-updates,bionic-security 2.4.29-1ubuntu4.11 amd64
apache2-suexec-custom/bionic-updates,bionic-security 2.4.29-1ubuntu4.11 amd64
apache2-suexec-pristine/bionic-updates,bionic-security 2.4.29-1ubuntu4.11 amd64
apache2-utils/bionic-updates,bionic-security 2.4.29-1ubuntu4.11 amd64
apachedex/bionic,bionic 1.6.2-1 all
apacheds/bionic-updates,bionic-updates,bionic-security,bionic-security 2.0.0~M24-2~18.04 all
apachetop/bionic 0.12.6-18build2 amd64
The escaped asterisk (\*
) means that any character(s) may follow the name. If you find nothing, consider adding the escaped asterisk to the beginning of the search string.
I am pretty sure you can choose the right one from this list. Obviously, the first is the actual Apache server. Choosing the apache2
package will also install its dependencies automatically.
$ sudo apt install apache2
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
apache2-bin apache2-data apache2-utils libaprutil1-dbd-sqlite3 libaprutil1-ldap liblua5.2-0
ssl-cert
Suggested packages:
apache2-doc apache2-suexec-pristine | apache2-suexec-custom openssl-blacklist
Solution 2:
You could use the grep
command :
apt-cache search apache2 | grep apache2
and if you don't like the red color of grep, just add the --color=none
option :
apt-cache search apache2 | grep apache2 --color=none
P.S : I recommend you to not forget the -cache
option, you won't see the package name if you don't add it by using grep
command (see below the result without this option) :
WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
Apache HTTP Server (mod_ssl development headers)
WebSocket extension for Apache HTTP Server
EDIT : Thanks to @pymym23, you would sort better your results by using the description, for example
apt-cache search apache2 | grep "Apache HTTP Server"
Result :
apache2-ssl-dev - Apache HTTP Server (mod_ssl development headers)
python-mod-pywebsocket - WebSocket extension for Apache HTTP Server
Also, you must use the -i
option, it won't sort result if you don't type a capital letter instead of a little one
Example :
apt-cache search apache2 | grep "apache HTTP Server"
and you got no result
apt-cache search apache2 | grep -i "apache HTTP Server"
and result is :
apache2-ssl-dev - Apache HTTP Server (mod_ssl development headers)
python-mod-pywebsocket - WebSocket extension for Apache HTTP Server