Как мне найти пакет?
Я понимаю, что это звучит как нелепый вопрос, но вот что я пытаюсь сделать: Установить http-сервер apache.
Итак, я бегу apt search apache и получить массу результатов.
На самом деле...apt search apache | wc -l и деление на 3 - я, кажется, получаю около 700 результатов.
Я могу попытаться сузить это, используя
apt search apache httpи затем я получаю около 200 результатов, а затем я могу много прокручивать, и это в конечном итоге появится.Я также могу использовать
apt search --names-only apacheи, по крайней мере, исключить все те вещи, которые упоминают только Apache в описании. Это приводит к 110 результатам.
Все это кажется довольно сложным и утомительным, учитывая, что пакет, который я ищу, называется "apache2". Есть ли способ получить наилучшую сортировку результатов? Или какой-то другой инструмент, который я должен использовать?
7 ответов
Похоже, вы знаете, как должен называться пакет, или, по крайней мере, какой должна быть часть его имени.apt search не выглядит лучшим инструментом для этой задачи, используйте apt list вместо:
$ 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
Вышедшая звездочка (\*) означает, что любой символ (ы) может следовать за именем. Если вы ничего не нашли, попробуйте добавить звездочку в начале строки поиска.
Я уверен, что вы можете выбрать правильный из этого списка. Очевидно, что первым является реальный сервер Apache. Выбор apache2 Пакет также установит свои зависимости автоматически.
$ 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
Вы могли бы использовать grep команда:
apt-cache search apache2 | grep apache2
и если вам не нравится красный цвет grep, просто добавьте --color=none вариант:
apt-cache search apache2 | grep apache2 --color=none
PS: рекомендую не забывать -cache опция, вы не увидите имя пакета, если вы не добавите его с помощью grep команда (см. ниже результат без этой опции):
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
РЕДАКТИРОВАТЬ: Благодаря @pymym23, вы бы лучше отсортировать свои результаты, используя описание, например,
apt-cache search apache2 | grep "Apache HTTP Server"
Результат:
apache2-ssl-dev - Apache HTTP Server (mod_ssl development headers)
python-mod-pywebsocket - WebSocket extension for Apache HTTP Server
Кроме того, вы должны использовать -i опция, она не будет сортировать результат, если вы не введете заглавную букву вместо маленькой
Пример:
apt-cache search apache2 | grep "apache HTTP Server"
и у тебя нет результата
apt-cache search apache2 | grep -i "apache HTTP Server"
и результат:
apache2-ssl-dev - Apache HTTP Server (mod_ssl development headers)
python-mod-pywebsocket - WebSocket extension for Apache HTTP Server
Я нашел хороший способ поиска, это вкладка завершена
sudo apt install apache<tab><tab>
дает
sudo apt install apache
apache2 apache2-doc apachedex
apache2-bin apache2-ssl-dev apacheds
apache2-data apache2-suexec-custom apachetop
apache2-dbg apache2-suexec-pristine
apache2-dev apache2-utils
если это не удается, просто введите команду
~$ apache
Command 'apache' not found, did you mean:
command 'apache2' from deb apache2-bin
Try: sudo apt install <deb name>
Современные дистрибутивы довольно хорошо знают, что вы имели в виду
Если это не удается, я обычно прибегаю к apt search / apt list или чаще в наши дни поиск в докер-хабе и установка через докер
Я ищу совместимые пакеты для CentOS для Ubuntu Server. Это было нормально:
apt search apache2 | more
Итак, я попробовал это на основе ответа @exussum, и это сработало отлично.
apt list apache2<tab><tab>
Я согласен с решением о
apt listлучше подходит для представления результатов, чем
apt search, но больше информации доступно через
-
apt list | grep <package_name>
и с
--installedтакой параметр, как:
-
apt list --installed | grep <package_name>
показывает, что установлено для этого пакета.
Поэтому без параметра он возвращает, что и где доступно для пакета, поэтому вы знаете, что хотите установить, а с параметром вы можете подтвердить, что вы уже установили пакет.
apt search **package-name**
пример: допустим, вы ищете mysql-сервер ->
apt search mysql-server
Выход:
sk@sk-desktop:~$ apt search mysql-server
Sorting... Done
Full Text Search... Done
default-mysql-server/bionic,bionic 1.0.4 all
MySQL database server binaries and system database setup (metapackage)
default-mysql-server-core/bionic,bionic 1.0.4 all
MySQL database server binaries (metapackage)
mysql-server/bionic-updates,bionic-updates,bionic-security,bionic-security,now 5.7.27-0ubuntu0.18.04.1 all [installed]
MySQL database server (metapackage depending on the latest version)
mysql-server-5.7/bionic-updates,bionic-security,now 5.7.27-0ubuntu0.18.04.1 amd64 [installed,automatic]
MySQL database server binaries and system database setup
mysql-server-core-5.7/bionic-updates,bionic-security,now 5.7.27-0ubuntu0.18.04.1 amd64 [installed,automatic]
MySQL database server binaries
$ apt list apache2
Listing... Done
apache2/disco-updates,disco-security 2.4.38-2ubuntu2.3 amd64
apache2/disco-updates,disco-security 2.4.38-2ubuntu2.3 i386
Для просто поиска по имени
$ apt show apache2
Package: apache2
Version: 2.4.38-2ubuntu2.3
Priority: optional
Section: web
Origin: Ubuntu
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Original-Maintainer: Debian Apache Maintainers <debian-apache@lists.debian.org>
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Installed-Size: 539 kB
Provides: httpd, httpd-cgi
Pre-Depends: dpkg (>= 1.17.14)
Depends: apache2-bin (= 2.4.38-2ubuntu2.3), apache2-data (= 2.4.38-2ubuntu2.3), apache2-utils (= 2.4.38-2ubuntu2.3), lsb-base, mime-support, perl:any, procps
Recommends: ssl-cert
Suggests: apache2-doc, apache2-suexec-pristine | apache2-suexec-custom, www-browser, ufw
Conflicts: apache2.2-bin, apache2.2-common
Breaks: libapache2-mod-proxy-uwsgi (<< 2.4.33)
Replaces: apache2.2-bin, apache2.2-common, libapache2-mod-proxy-uwsgi (<< 2.4.33)
Homepage: https://httpd.apache.org/
Task: lamp-server
Supported: 9m
Download-Size: 95.5 kB
APT-Sources: http://eg.archive.ubuntu.com/ubuntu disco-updates/main amd64 Packages
Description: Apache HTTP Server
The Apache HTTP Server Project's goal is to build a secure, efficient and
extensible HTTP server as standards-compliant open source software. The
result has long been the number one web server on the Internet.
.
Installing this package results in a full installation, including the
configuration files, init scripts and support scripts.
N: There is 1 additional record. Please use the '-a' switch to see it
Поскольку вы знаете имя пакета, вы можете использовать эту команду, чтобы получить его детали
$ apt search apache2
Sorting... Done
Full Text Search... Done
apache2/disco-updates,disco-security 2.4.38-2ubuntu2.3 amd64
Apache HTTP Server
apache2-bin/disco-updates,disco-security 2.4.38-2ubuntu2.3 amd64
Apache HTTP Server (modules and other binary files)
apache2-data/disco-updates,disco-updates,disco-security,disco-security 2.4.38-2ubuntu2.3 all
Apache HTTP Server (common files)
apache2-dev/disco-updates,disco-security 2.4.38-2ubuntu2.3 amd64
Apache HTTP Server (development headers)
apache2-doc/disco-updates,disco-updates,disco-security,disco-security 2.4.38-2ubuntu2.3 all
Apache HTTP Server (on-site documentation)
...
$ apt search apache2 | grep apache2
WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
apache2/disco-updates,disco-security 2.4.38-2ubuntu2.3 amd64
apache2-bin/disco-updates,disco-security 2.4.38-2ubuntu2.3 amd64
apache2-data/disco-updates,disco-updates,disco-security,disco-security 2.4.38-2ubuntu2.3 all
apache2-dev/disco-updates,disco-security 2.4.38-2ubuntu2.3 amd64
apache2-doc/disco-updates,disco-updates,disco-security,disco-security 2.4.38-2ubuntu2.3 all
apache2-ssl-dev/disco-updates,disco-security 2.4.38-2ubuntu2.3 amd64
apache2-suexec-custom/disco-updates,disco-security 2.4.38-2ubuntu2.3 amd64
apache2-suexec-pristine/disco-updates,disco-security 2.4.38-2ubuntu2.3 amd64
apache2-utils/disco-updates,disco-security 2.4.38-2ubuntu2.3 amd64
dehydrated-apache2/disco-updates,disco-updates 0.6.2-2ubuntu0.19.04.1 all
gforge-web-apache2/disco,disco 6.0.5-2ubuntu1 all
kopano-webapp-apache2/disco,disco 3.5.2+dfsg1-1 all
Documentation of libapache2-mod-jk package
libapache2-authcassimple-perl/disco,disco 0.10-3 all
libapache2-authcookie-perl/disco,disco 3.27-1 all
libapache2-mod-apparmor/disco-updates 2.13.2-9ubuntu6.1 amd64
libapache2-mod-apreq2/disco 2.13-5build4 amd64
...
Для поиска названий пакетов и там описание
[последняя команда]
если вы хотите исключить все вещи из вывода, кроме строк, которые имеют (под) слово "apache2"