18

По сути, я ищу Debian-эквивалент:

yum list available

чтобы показать мне, какие пакеты доступны (хотя в данный момент не установлены). Я бы предпочел что-то, что можно запустить из консоли, так как это на удаленном сервере. Благодарю.

5 ответов5

16

apt-cache используется для запроса кеша пакетов:

apt-cache pkgnames | sort
apt-cache search thing
apt-cache search --names-only thing
6

grep-dctrl и его производные предоставляют отличный способ запроса файлов кэша apt. (Вы можете установить эти инструменты в Ubuntu с помощью sudo apt-get install dctrl-tools)

В случае доступных (но не обязательно установленных) пакетов вы можете использовать grep-available . Например, чтобы перечислить все доступные пакеты:

grep-available  -s Package .

Редактировать:

aptitude может показать вам список неустановленных пакетов, просто запустив его.

Вы также можете получить список не установленных пакетов с aptitude , используя:

aptitude -F "%p" search "?not(?installed)"

Обратите внимание, что с новыми многоархивными пакетами вы получите пакеты для других архитектур, перечисленных в этом результате. Например, я получаю:

aptitude -F "%p" search "?not(?installed)"  | grep "^bash:"
bash:i386

У меня установлен пакет bash , но это версия amd64, поскольку моя ОС установлена вместе с версией amd64 Ubuntu Precise. Если вы не хотите , чтобы эти пакеты для других архитектур, вы можете исключить строки , :

aptitude -F "%p" search "?not(?installed)"  | grep -v ':'
2

Используйте apt-cache для этой цели:

apt-cache search package

Поскольку apt-cache использует только кеш пакетов в системе, убедитесь, что этот кеш обновлен:

apt-get update

Вы также можете использовать утилиту apt-file если знаете имя файла, который хотите найти; это должно быть добавлено к системе как бы то ни было. Например:

apt-file search somefilename

Я склонен использовать apt-cache одним из следующих способов:

apt-cache search package | sort | grep item

(Это показывает вам вещи, у которых есть пункт в их резюме или именах.)

apt-cache search thing | sort | less

(Это ищет вещь, а затем сортирует ее для приятного просмотра с less .)

2

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

В моем Debian с GNU bash эти простые команды

apt list
apt list --all-versions

дает список всего (установленного и не установленного). Затем я могу ограничить результаты с помощью grep "Установлено" или grep -v "Установлено". Его также можно комбинировать с одним или несколькими именами пакетов (допускаются подстановочные знаки).

Переключатель «-all-version» обеспечивает в выходных данных отдельные строки для каждой версии пакета (стабильная, тестируемая, нестабильная, экспериментальная).

Простой "apt list" дает только одну (наивысший приоритет) версию.

0

Принимая ваш вопрос строго (вы хотите показать список не установленных пакетов), попробуйте использовать

(отредактировано в соответствии с комментариями ниже)

# apt-get update
# dpkg -l '*' | egrep --invert-match '^i'

Хотя я не уверен в точном синтаксисе, так как я пишу это в окне Windows и не могу проверить. Может быть, попытаться изменить то, что вы grep на

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .