Debian

Поиск пакетов Debian

Поиск пакетов Debian

Debian 9 под кодовым названием Stretch имеет огромный репозиторий, содержащий более 68000 пакетов. Будь то игры, шрифты, редакторы, базы данных или инструменты разработки, есть шанс, что вы найдете это там. Ключ, однако, заключается в том, чтобы найти Это. Если вы не знаете точное имя пакета, найти конкретный пакет в таком большом репозитории - все равно что искать иголку в стоге сена. Иногда название пакета отличается от названия программы. Например, iostat, полезная программа для составления отчетов о статистике ввода-вывода процессора и диска, упакована под названием sysstat. В других случаях вы не знаете ни имени пакета, ни имени команды. Вместо этого вы знаете только его функцию, то, что он должен делать.

Для поиска пакетов существует несколько методов с разным уровнем мощности и удобства использования. На веб-сайте Debian есть список всех пакетов Debian. Итак, вы можете использовать функцию поиска своего браузера или загрузить список в виде сжатого текстового файла и использовать grep. В любом случае, чтобы отфильтровать список, потребуется много ручной работы. Хорошая новость в том, что доступны мощные автоматизированные инструменты для ускорения фильтрации.

Debian предоставляет как графические менеджеры пакетов, так и менеджеры пакетов командной строки для поиска и фильтрации пакетов. Инструменты на основе графического интерфейса пользователя, такие как Synaptic, обычно отличаются удобством использования. Однако не на всех машинах, особенно на производственных серверах, установлен графический рабочий стол. Для этих машин Synaptic просто не вариант. В этом посте мы сосредоточимся на инструментах командной строки для поиска пакетов Debian.


Исходная информация

Системные администраторы Debian определяют источники пакетов в файле / etc / apt / sources.список. Помимо прочего, в файле указано, что только пакеты из определенного выпуска Debian (e.грамм., Stretch vs Buster), а также из определенных категорий компонентов (e.грамм., main, contrib и non-free) можно скачать. Метаданные всех подходящих пакетов загружаются в локальный кеш пакетов с помощью команды apt-get update.

Сопровождающие пакетов апстрима могут добавлять и удалять пакеты в любое время. Чтобы убедиться, что ваш локальный кеш пакетов содержит последнюю информацию о метаданных, вы должны обновить кеш ('apt-get update'), прежде чем выполнять поиск.

Теперь, когда вы готовы к поиску, вы можете делать это как обычный пользователь. Нет необходимости становиться root для выполнения поиска. Это связано с тем, что поиск просто выполняет запросы, а не изменяет кеш пакетов. Кроме того, машине даже не нужно быть в сети, потому что команды поиска обращаются только к локальному кешу, а не к удаленным репозиториям.

Объем поиска ограничен тем, что указано в источниках.файл списка. Например, если файл разрешает только пакеты компонентов main и contrib, тогда ваш поиск не будет возвращать несвободные пакеты.

Обобщить:

  1. Перед выполнением поиска запустите 'apt-get update', чтобы обновить кеш пакета.
  2. Вы можете запустить команду поиска как обычный пользователь (права root не требуются).
  3. Для выполнения поисковой команды не требуется подключение к Интернету.
  4. Результаты поиска ограничены рамками, определенными источниками.файл списка.

apt-cache

Если вы знаете имя пакета, хотя и частично, вы можете передать его частичное имя в качестве аргумента регулярного выражения в apt-cache. Например, вы знаете, что имя пакета является вариацией темы dos для unix, например dostounix, dos2unix, dos-to-unix и т. Д. Команда поиска и ее вывод выглядят следующим образом:

$ apt-cache search --names-only dos.+unix
dos2unix - конвертировать окончания строк текстового файла между CRLF и LF

Заметки:

  1. -только имена (или -n вкратце) указывает, что сопоставляются только имена пакетов, а не описания. (По умолчанию используется имя и описание.)
  2. дос.+unix - это регулярное выражение, которое соответствует имени пакета dos2unix. Обратитесь к regex (7) за справкой по синтаксису.

Что делать, если вы знаете только, что делает пакет, я.е., его функция, но не его имя? В этом случае вы ищете программу для преобразования текстовых файлов из формата DOS в UNIX. Используемая команда поиска и ее вывод следующие:

$ Apt-cache search конвертировать dos unix
dos2unix - конвертировать окончания строк текстового файла между CRLF и LF
flip - конвертировать окончания строк текстового файла между форматами Unix и DOS
fondu - конвертировать между форматами шрифтов Mac и UNIX
tofrodos - Конвертирует DOS <-> Текстовые файлы Unix, псевдоним tofromdos

По умолчанию apt-cache пытается сопоставить ключевые слова поиска как с именем пакета, так и с его длинным описанием. Здесь есть надежда, что функциональные ключевые слова будут соответствовать словам, которые сопровождающий пакета использует в своем длинном описании. Обратите внимание, что несколько ключевых слов (convert, dos, unix) соединяются вместе AND.

подходящий

Команда apt - это новый инструмент управления пакетами, который объединяет основные функции apt-get и apt-cache. Он предназначен для использования в интерактивном режиме, а не в сценарии. Например, вывод apt раскрашен для улучшения читаемости. Помимо эстетики, команды apt и apt-cache имеют схожий синтаксис, включая параметры команд.

В приведенном ниже примере выполняется поиск пакета по регулярному выражению dos.+unix, только по именам пакетов (по умолчанию и по имени, и по описанию).

$ Apt search --names-only dos.+unix
Сортировка… Готово
Полнотекстовый поиск… Готово
dos2unix / стабильный, теперь 7.3.4-3 amd64 [установлено]
конвертировать окончания строк текстового файла между CRLF и LF

apt-файл

Хотя apt-cache (и apt) может помочь вам найти пакет, сопоставив функциональные ключевые слова, поиск часто оказывается неудачным. Успех слишком сильно зависит от того, как сопровождающий составляет подробное описание пакета. Однако на самом деле вы можете знать дополнительную информацию о пакете, такую ​​как имя команды или файл, который включен в пакет. Тогда инструмент для использования - это apt-файл.

Команда apt-file не установлена ​​по умолчанию в системе Debian. Для установки запустите как root:

$ apt-get установить apt-файл

Перед первым запуском apt-file обновите кеш пакетов, обновив локальный кеш пакетов ('apt-get update').

Предположим, вы хотите найти пакет, содержащий команду iostat. Используемая команда и сокращенный вывод следующие:

$ apt-файл поиск iostat
…   <12 lines snipped>…
Linux-руководство-4.9: / usr / share / man / man9 / rpc_count_iostats_metrics.9.gz
Linux-руководство-4.9: / usr / share / man / man9 / rpc_free_iostats.9.gz
manpages-fr-extra: / usr / share / человек / fr / man8 / nfsiostat.8.gz
munin-plugins-extra: / usr / share / munin / плагины / iostat
munin-plugins-extra: / usr / share / munin / плагины / iostat_ios
nagios-plugin-check-multi: / usr / share / doc / nagios-plugin-check-multi / examples / nagiostats.cmd
nfs-common: / usr / sbin / nfsiostat
nfs-common: / usr / share / человек / man8 / nfsiostat.8.gz
nixstatsagent: / usr / lib / python2.7 / дистрибутивы / nixstatsagent / плагины / iostat.ру
sysstat: / usr / bin / cifsiostat
sysstat: / usr / bin / iostat
sysstat: / usr / share / man / man1 / cifsiostat.1.gz
sysstat: / usr / share / man / man1 / iostat.1.gz
zsh-common: / usr / share / zsh / functions / Completion / Unix / _iostat

apt-file работает путем сопоставления аргумента iostat в качестве подстроки с именами путей всех файлов в пакете. Вышеупомянутый поиск возвращает 46 совпадений, i.е., в общей сложности 46 файлов в локальном кеше содержат iostat в своих путях, что очень много для проверки вручную.

Чтобы сузить поиск, превратите аргумент в регулярное выражение с помощью флага -x.

$ Apt-file -x search '/ iostat $'
munin-plugins-extra: / usr / share / munin / плагины / iostat
sysstat: / usr / bin / iostat

Регулярное выражение / iostat $ сопоставляет только пути, которые точно заканчиваются на iostat. Для получения информации о синтаксисе регулярных выражений обратитесь к perlreref (1).

В новом выводе всего 2 попадания, и вы можете быстро прочитать имя пакета (sysstat), который содержит команду iostat.


Заключение

Дистрибутивы Linux в целом и Debian в частности известны своими огромными официальными репозиториями пакетов. Но найти нужный среди десятков тысяч пакетов может быть довольно непросто. Будьте уверены, вам не нужно знать точное название пакета. Команды apt-cache и apt могут фильтровать пакеты на основе ключевых слов в описании пакета. В качестве альтернативы, если вы знаете имя двоичного файла программы, команда apt-file может использовать его для идентификации пакетов, содержащих файл с таким же именем.

Игры HD Remastered для Linux, ранее не выпускавшиеся для Linux
Многие разработчики и издатели игр придумывают HD-ремастеры старых игр, чтобы продлить жизнь франшизы, порадовать фанатов, требующих совместимости с с...
Как использовать AutoKey для автоматизации игр под Linux
AutoKey - это утилита автоматизации рабочего стола для Linux и X11, запрограммированная на Python 3, GTK и Qt. Используя его функции сценариев и MACRO...
Как показать счетчик FPS в играх для Linux
Игры для Linux получили серьезный толчок, когда Valve объявила о поддержке Linux для клиента Steam и своих игр в 2012 году. С тех пор многие игры AAA ...