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


11

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

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

Спасибо.

Ответы:


13

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


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. Вы получите намного лучшие результаты

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.