Как мне найти пакет?

Я понимаю, что это звучит как нелепый вопрос, но вот что я пытаюсь сделать: Установить http-сервер apache.

Итак, я бегу apt search apache и получить массу результатов.

На самом деле...apt search apache | wc -l и деление на 3 - я, кажется, получаю около 700 результатов.

  1. Я могу попытаться сузить это, используя apt search apache http и затем я получаю около 200 результатов, а затем я могу много прокручивать, и это в конечном итоге появится.

  2. Я также могу использовать 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"

Другие вопросы по тегам