Debian

Търсене на пакети на Debian

Търсене на пакети на Debian

Debian 9 с кодово име „Stretch“ има огромно хранилище от 68 000+ пакета. Независимо дали става дума за игри, шрифтове, редактори, бази данни или инструменти за разработка, шансът е, че ще го намерите там. Ключът обаче е да намирам то. Освен ако не знаете точното име на пакета, намирането на конкретен пакет в толкова голямо хранилище е като да търсите игла в купа сено. Понякога името на пакета се различава от името на програмата. Например, iostat, полезна програма за отчитане на статистиката на процесора и дисковия вход / изход, е пакетирана под името sysstat. Друг път не знаете нито името на пакета, нито името на командата. Вместо това вие знаете само неговата функция, какво трябва да прави.

За търсене на пакети съществуват няколко метода с различни нива на мощност и използваемост. Уебсайтът на Debian има списък на всички пакети на Debian. Така че, можете да използвате функцията за търсене на браузъра си или да изтеглите списъка като компресиран текстов файл и да използвате grep. Така или иначе, за филтриране на списъка е необходима много ръчна работа. Добрата новина е, че са налични мощни автоматизирани инструменти за ускоряване на филтрирането.

Debian предоставя както графични, така и мениджъри на команден ред за търсене и филтриране на пакети. Инструментите, базирани на GUI, като Synaptic, обикновено се отличават с използваемост. Не всички машини, особено производствените сървъри, имат инсталиран графичен работен плот. За тези машини Synaptic просто не е опция. В тази публикация ние се фокусираме върху инструментите на командния ред за търсене на пакети Debian.


Обща информация

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

Поддръжниците на пакети нагоре по веригата могат да добавят и премахват пакети по всяко време. За да сте сигурни, че вашият локален кеш на пакети има най-новата информация за метаданни, трябва да актуализирате кеша ('apt-get update'), преди да извършите търсене.

Сега, когато сте готови за търсене, можете да го направите като обикновен потребител. Няма нужда да станете root за извършване на търсене. Това е така, защото търсенето просто прави заявки, а не промени в кеша на пакета. Освен това машината дори не е необходимо да е онлайн, защото командите за търсене имат достъп само до локалния кеш, а не до отдалечени хранилища.

Обхватът на търсенето е ограничен до посоченото в източниците.списъчен файл. Например, ако файлът разрешава само основните и допълнителните компонентни пакети, вашите търсения няма да върнат несвободни пакети.

Да обобщим:

  1. Преди да изпълните търсене, стартирайте „apt-get update“, за да обновите кеша на пакета.
  2. Можете да стартирате команда за търсене като обикновен потребител (не са необходими права на root).
  3. Не се изисква интернет връзка за изпълнение на команда за търсене.
  4. Резултатите от търсенето са ограничени до обхвата, определен от източниците.списъчен файл.

apt-кеш

Ако знаете името на пакета, макар и частично, можете да предадете частичното име като аргумент на регулярен израз на apt-cache. Например знаете, че името на пакета е вариант на темата dos към unix, като dostounix, dos2unix, dos-to-unix и т.н. Командата за търсене и резултатите от нея са както следва:

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

Бележки:

  1. -names-only (или накратко -n) указва, че се съчетават само имена на пакети, а не описания. (По подразбиране е едновременно име и описание.)
  2. дос.+unix е регулярен израз, който съответства на името на пакета dos2unix. Моля, обърнете се към регулярния израз (7) за помощ при синтаксиса.

Какво правите, ако знаете само какво прави пакетът, т.е.д., неговата функция, но не и името му? В този случай търсите програма за конвертиране на текстови файлове от DOS формата в UNIX. Командата за търсене, която трябва да се използва, и резултатите от нея са следните:

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

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

подходящ

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

Примерът по-долу търси пакет чрез съвпадение на регулярния израз dos.+unix, само срещу имена на пакети (по подразбиране, срещу име и описание).

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

apt-файл

Въпреки че apt-cache (и apt) може да ви помогне да търсите пакет чрез съвпадение на функционални ключови думи, търсенето често се удря и пропуска. Успехът зависи твърде много от това как поддържащият пакет пише дългото описание на пакета. В действителност обаче може да знаете допълнителна информация за пакета, като името на командата или файл, който е включен в пакета. Инструментът, който трябва да използвате тогава, е apt-файл.

Командата apt-file не е инсталирана по подразбиране в система на Debian. За да инсталирате, стартирайте като root:

$ apt-get инсталирайте apt-файл

Преди да стартирате apt-файл за първи път, актуализирайте кеша на пакета, като актуализирате локалния кеш на пакета ('apt-get update').

Да предположим, че искате да намерите пакета, който съдържа командата iostat. Командата за използване и съкратеният изход са както следва:

$ apt-файл за търсене iostat
..   <12 lines snipped>..
linux-manual-4.9: / usr / share / man / man9 / rpc_count_iostats_metrics.9.gz
linux-manual-4.9: / usr / share / man / man9 / rpc_free_iostats.9.gz
manpages-fr-extra: / usr / share / man / fr / man8 / nfsiostat.8.gz
munin-plugins-extra: / usr / share / munin / plugins / iostat
munin-plugins-extra: / usr / share / munin / plugins / iostat_ios
nagios-plugin-check-multi: / usr / share / doc / nagios-plugin-check-multi / examples / nagiostats.cmd
nfs-често: / usr / sbin / nfsiostat
nfs-common: / usr / share / man / man8 / nfsiostat.8.gz
nixstatsagent: / usr / lib / python2.7 / dist-пакети / nixstatsagent / плъгини / iostat.py
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-файл работи чрез съвпадение на аргумента iostat като подниз спрямо имената на пътищата на всички файлове в пакет. Горното търсене връща 46 посещения, т.е.д., общо 46 файла в локалния кеш съдържат iostat в имената на пътищата си, което е много за ръчно изследване.

За да стесните търсенето, превърнете аргумента в регулярен израз, като използвате флага -x.

$ Apt-file -x search '/ iostat $'
munin-plugins-extra: / usr / share / munin / plugins / iostat
sysstat: / usr / bin / iostat

Регулярният израз, / iostat $, съвпада само с имена на пътища, които завършват точно с iostat. За синтаксиса на регулярния израз, моля, обърнете се към perlreref (1).

Новият изход има само 2 посещения и можете бързо да прочетете името на пакета (sysstat), който съдържа командата iostat.


Заключение

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

Най-добрите приложения за картографиране на геймпад за Linux
Ако искате да играете игри на Linux с геймпад вместо типична система за въвеждане на клавиатура и мишка, има някои полезни приложения за вас. Много ко...
Полезни инструменти за геймърите на Linux
Ако искате да играете игри на Linux, има вероятност да сте използвали приложения и помощни програми като Wine, Lutris и OBS Studio, за да подобрите иг...
HD Remastered Games за Linux, които никога преди не са имали издание на Linux
Много разработчици и издатели на игри излизат с HD ремастер на стари игри, за да удължат живота на франчайза, моля феновете, които искат съвместимост ...