Как мне искать доступные пакеты из командной строки?

584

Я успешно установил некоторые пакеты, используя командную строку «sudo apt-get install ...», когда заранее знал, что эти пакеты доступны. Но как я могу найти или получить список того, что доступно в репозиториях?

Марк Томас
источник

Ответы:

729

Для поиска определенного пакета по имени или описанию:

Из командной строки используйте:

apt-cache search keyword

где ключевое слово поиска может быть полностью или частично именем пакета или любыми словами, используемыми в его описании.

Например, apt-cache search proxyвключает в себя оба этих пакета:

крошечный прокси - легкий, не кеширующий, при желании анонимный HTTP прокси
tircd - ircd прокси для твиттер API

Примечание: список может быть длинным, так что вы можете направить выход на , lessчтобы сделать его прокручивать одна строка или один экран одновременно, то есть apt-cache search something | less.

Получить список ВСЕХ пакетов

apt-cache search .

Используйте Synaptic, если у вас включена X-forwarding или вы работаете на рабочем столе

Synaptic часто является более удобным способом сделать это, но требует по крайней мере X-сервера на вашем конце (если вы не используете среду рабочего стола). Установите sudo apt-get install synapticпри необходимости.

  • Synaptic на ssh'd сервере через X forwarding:

    введите описание изображения здесь

  • Synaptic работает локально на Ubuntu Desktop:

    введите описание изображения здесь

иш
источник
@MarkThomas Попробуйте apt-cache policyтоже, это дает вам больше информации об источниках.
yclian
например apt-get, вы можете просто запустить apt-cacheбез каких-либо аргументов и получить краткую справку / информацию о шпаргалке. Вы всегда можете прочитать справочные руководства на нем для более длительной помощи. (т.е. man apt-cache)
pd12
Предположим, что я достаточно глуп, чтобы захотеть воплотить результаты apt install, есть ли разумный способ сделать это? Вывод из этой функции грязный. Можно использовать первое слово из каждой строки, но должен быть более простой способ.
Deleet
Вы также можете искать в Интернете. packages.ubuntu.com
activedecay
Если вам нужны только имена всех доступных пакетов, просто сделайтеapt-cache pkgnames
flaz14
42

Используя aptitude, apt-cacheи aptвсе форматируют вывод по-разному. (Ни один из них не требует использования sudoпри поиске пакета.) Я предпочитаю использовать aptдля его читабельности. Он выделяет имя пакета и помещает пробел между различными пакетами. Он также [installed]перечислил рядом с каждым пакетом, который уже установлен. Использование:

apt search package-name
jbrock
источник
2
если я запускаю «$ apt search firefox», он выдает
массу
Вы можете сузить область поиска, например:apt search firefox | grep -A 3 firefox
jbrock
1
Еще один вариант сузить поиск: apt search ^firefoxилиapt search ^firefox$
Джоброк
25

Вы также можете использовать aptitude из командной строки:

aptitude search xxxxxx
LXX
источник
2
Раздражает тот факт, что Ubuntu, похоже, не дает его вам по умолчанию. До тех пор, пока я не узнал apt-cache, я всегда делал это apt-get install aptitudeна каждой новой установленной коробке. Однако, так как я не могу найти способ apt-cacheпоказать мне, установлен ли он, я думаю, что мне придется немного продолжать это делать :-)
2
@paxdiablo Просто создайте двухстрочный сценарий оболочки (похожий на вторую строку dpkg --list | grep "$1") или добавьте функцию оболочки с этим эффектом в свой .bash_login... :-)
FooF
5

Средство командной строки apt-cache используется для поиска в кеше программного пакета apt. Проще говоря, этот инструмент используется для поиска пакетов программного обеспечения, сбора информации о пакетах, а также для поиска того, какие доступные пакеты готовы для установки в системах на основе Debian или Ubuntu.

Чтобы узнать имя пакета и его описание перед установкой, используйте флаг поиска. Использование «search» с apt-cache покажет список подходящих пакетов с кратким описанием. Допустим, вы хотите узнать описание пакета vsftpd, тогда команда будет.

Синтаксис:

apt-cache search SearchTerm
$ apt-cache search vsftpd

Возможный результат будет:

vsftpd - lightweight, efficient FTP server written for security
ccze - A robust, modular log coloriser
ftpd - File Transfer Protocol (FTP) server
yasat - simple stupid audit tool

Чтобы найти и перечислить все пакеты, начинающиеся с 'vsftpd', вы можете использовать следующую команду.

$ apt-cache pkgnames vsftpd

Вы можете также хотеть пропустить результаты через больше, или даже grep. Например:

apt-cache search firefox | grep plugin
U.Swap
источник
3

Предполагая, что вы хотите сделать все это из терминала, используйте следующее:

Во-первых, я рекомендую обновить индексные файлы пакетов, чтобы список всех файлов в репозитории, который вы собираетесь создать, был актуальным

sudo apt-get update

затем используйте функцию «регулярное выражение поиска », apt-cacheгде «регулярное выражение» означает регулярное выражение и является шаблоном, заданным для поиска. Более подробную информацию о шаблонах поиска вы можете найти в регулярном выражении regex (7) по команде man 7 regexили на английском языке . Регулярное выражение переменной равно . будет достаточно.

apt-cache search .

Вышеприведенное даст вам ВСЕ результаты, но это не в каком-либо порядке, что особенно полезно для просмотра.

Итак, наконец, мы можем отсортировать по словарному порядку, используя sort -dи показывать только страницу одновременно less.

apt-cache search . |sort -d |less
брат-било
источник