за допомогою пошуку apt-кеша


11

Я вчусь використовувати влучні. Коли я 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-cacheдовідковою сторінкою, /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$поверне лише результати, які містять" 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

Це непряма відповідь на ваше запитання, але все ще пов’язана з ним, оскільки мова йде про управління пакетами. Я особисто використовую здатність замість apt-get. здатність - це синаптичний еквівалент терміналу.

Шукати,

sudo aptitude search $keyword

Інші команди

sudo aptitude install
sudo aptitude update
sudo aptitude upgrade

Щоб встановити здатність,

sudo apt-get install aptitude

Майте на увазі, що здатність досі може бути проблематичною для багатоархівних систем - тому нормально використовувати її для запитів / пошукових запитів, але не для встановлення / видалення пакетів.
guntbert

help.ubuntu.com/community/MultiArch пояснює, як придатність можна використовувати для проблем, що стосуються
мультиархів

Ця сторінка згадує лише aptitude why- як я сказав "використовувати її для запитів" - сторінка теж досить стара (відредаговано 2012-02-08) - тому моє попередження все ще стоїть.
Гунтберт

Розумію. Я користувач придатності, тож чи можете ви вказати мені на статтю, де сказано, що це проблематично для багатоархівної системи? Можливо, мені знадобиться перейти назад на apt-get тоді.
Ltt

bugs.launchpad.net/ubuntu/+source/aptitude/+bug/831768 , здається, це було виправлено недавно. Я все ще насторожуюсь. Debian рекомендує apt-get too (документи для хрипів)
guntbert

0

Встановіть apt-xapian-index та використовуйте пошук axi-cache при пошуку замість apt - кеша. Ви отримаєте набагато кращі результати

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.