используя поиск в apt-cache

11

Я учусь использовать apt. Когда я делаю, apt-cache search git чтобы увидеть все пакеты, соответствующие git, я вижу кучу пакетов, описания которых не имеют ничего общего с git. Почему это так и как я могу это исправить? (Ubuntu 12.04.2 LTS).

Кроме того, почему функция поиска находится в команде, в имени которой содержится «кеш»? Какое отношение имеет функция поиска к кешам?

Спасибо.

Джейсон Позит
источник

Ответы:

13

Если вы хотите искать только по имени, используйте --names-onlyаргумент. Для получения дополнительной информации читайте man apt-cache, это было бы полезно.

ssoto
источник
6

Когда вы выполняете apt-cache search <package name>команду, вы выполняете запрос к информации, хранящейся на вашем локальном компьютере, о доступных пакетах. Это кеш из ваших «подписанных» репозиториев. То есть команда выполняет запрос к репозиториям, которые вы настроили в USC (Ubuntu Software Center) или Synaptic.

Согласно apt-cacheman-странице, /etc/apt/sources.listэто место для получения информации в запросе. Есть несколько дополнительных мест для других типов информации о пакете. Смотрите man apt-cacheдля более подробной информации.

По сути, запуск apt-cache search gitвернет все экземпляры доступных пакетов, содержащих последовательность слов «git» в имени пакета, а также в описании пакета.

Например, это означает, что любой пакет, который может содержать последовательность слов «git» в нем, например слово «di git al», в своем описании также будет возвращен в результате. Пожалуйста, обратите внимание на жирный шрифт в предыдущем предложении.

Если вас интересуют только пакеты, которые конкретно связаны с git - менеджером управления исходным кодом, вам нужно ограничить ваш запрос использованием регулярного выражения, чтобы сделать результаты поиска более строгими.

Например:

sudo apt-cache search ^git$

вернет результаты, которые явно содержат только фразу «git» в имени пакета.

Например:

sudo apt-cache search ^git$
git - fast, scalable, distributed revision control system

Команда: sudo apt-cache search ^git

вернет результаты для пакетов, которые начинаются с фразы "git":

Например:

sudo apt-cache search ^git
git - fast, scalable, distributed revision control system
git-core - fast, scalable, distributed revision control system (obsolete)
git-doc - fast, scalable, distributed revision control system (documentation)
git-man - fast, scalable, distributed revision control system (manual pages)
gitk - fast, scalable, distributed revision control system (revision tree visualizer)
easygit - git for mere mortals
gforge-plugin-scmgit - Git plugin for FusionForge (transitional package)
git-all - fast, scalable, distributed revision control system (all subpackages)
git-annex - manage files with git, without checking their contents into git
git-arch - fast, scalable, distributed revision control system (arch interoperability)
...

Тем не менее, вам нужно будет настроить запросы кеша пакетов, чтобы они были более специфичны для ваших интересов. Надеюсь это поможет.

Кевин Боуэн
источник
apt-cache search ^git$msgstr " будет возвращать только результаты, содержащие" git "в имени пакета". Я не понимаю этого, потому что, например git-man(из второго опубликованного вами материала) также содержится git. Можете ли вы объяснить, что означают каретка и символы $? Я знаю, что каретка означает «начинается с», но это противоречит второму выводу, который вы опубликовали (вывод ^git), потому что он возвращает easygit=).
Алаа Али
Оооо. В ^средства упаковки и описание , которые начинаются с git. Хорошо, второй вывод понятен. Так что же ^git$возвращает? Пакеты, которые начинаются с gitи ...?
Алаа Али
@Alaa Думайте о символах «^» и «$» как о якорях к вашему запросу. apt-cache search ^git$вернет, в частности, пакет git. apt-cache search ^gitвернет пакеты, которые начинаются с фразы «git» и будут менее конкретными.
Кевин Боуэн
Можно получить более обобщенный результат поиска, запустив запрос apt-cache search ^ git? `
Кевин Боуэн
Чтобы получить более красочный вывод, можно улучшить вашу команду с помощьюapt-cache search ^git | grep --color git
georg
0

Это косвенный ответ на ваш вопрос, но все же связанный с ним, поскольку речь идет об управлении пакетами. Я лично использую aptitude вместо apt-get. aptitude - это синаптический эквивалент терминала.

Искать,

sudo aptitude search $keyword

Другие команды

sudo aptitude install
sudo aptitude update
sudo aptitude upgrade

Чтобы установить aptitude,

sudo apt-get install aptitude
ЛЛТ
источник
Имейте в виду, что aptitude все еще может быть проблематичным в многоархитективных системах - поэтому его можно использовать для запросов / поисков, но не для установки / удаления пакетов.
Гюнтберт
help.ubuntu.com/community/MultiArch объясняет, как aptitude можно использовать для задач, связанных с
многоархитектурой
На этой странице упоминается только aptitude why- как я сказал «использовать ее для запросов» - страница также довольно старая (отредактировано 2012-02-08) - поэтому мое предупреждение остается в силе.
Гюнтберт
Понимаю. Я - пользователь aptitude, поэтому можете ли вы указать мне на статью, в которой говорится, что это проблема в многоархивной системе? Возможно, мне придется вернуться к apt-get тогда.
ЛЛТ
bugs.launchpad.net/ubuntu/+source/aptitude/+bug/831768 , похоже, это было недавно исправлено. Я все еще осторожен. Debian также рекомендует apt-get (документы для wheezy)
Гюнтберт,
0

Установите apt-xapian-index и используйте поиск axi-cache при поиске вместо apt-cache. Вы получите намного лучшие результаты

zaonline
источник