Вопрос Как проверить, установлен ли пакет на моем сервере?


Недавно я установил версию Ubuntu Server 13.10 (Saucy Salamander). Но я столкнулся с проблемой.

В конце установки он запрашивает у вас несколько дополнительных пакетов, независимо от того, хотите вы их или нет, например, сервер OpenSSH и хост виртуальной машины. Вот что я просматриваю:

Enter image description here

Теперь моя проблема в том, что я не могу вспомнить, был ли я установлен флажок «хост виртуальной машины». Как проверить, имеет ли мой сервер соответствующие пакеты?

Какие пакеты поставляются с хостом виртуальной машины?


126
2018-02-19 21:12


происхождения




ответы:


Список всех установленных пакетов

Здесь «less» - это простой текстовый ридер, используемый для прокрутки списка пакетов в новом буфере, который открывается в существующем окне терминала. Список не будет смешиваться с другими командами терминала и выходом. Нажмите «q», чтобы вернуться к приглашению терминала. См. «Человек меньше» для получения дополнительной информации.

dpkg -l | less

Чтобы проверить, установлен ли пакет или нет:

dpkg -l {package_name}
dpkg -l vlc

Чтобы проверить, установлен ли пакет или нет (например, vlc). Если установлено, запустите пакет:

dpkg -l | grep vlc

Показывать место установки пакета. «-S» (столица S) означает «поиск»,

sudo dpkg -S {package_name}
sudo dpkg -S skype

Чтобы использовать Grep для поиска:

dpkg -l | grep {keywords}
dpkg -l | grep pdf

176
2018-02-20 09:12



В чем разница между этим и dpkg-query -l "packagename" - heypaleblue
Не зависеть от кода выхода dpkg -l packagename, так как он может вернуться с кодом выхода 0, даже если пакет не установлен полностью - см. github.com/bitrise-io/bitrise/issues/433 - Viktor Benei
dpkg -l | cut -d " " -f 3 | grep "^vlc" показать все имена пакетов, которые начинаются с vlc - anatoly techtonik
FYI, это не работает для метапакетов, поскольку они не коррелируют непосредственно с dpkg. Ваш ответ действительно отвечает на заданный вопрос. - mtalexan


использование dpkg

Эта команда является менеджером пакетов debian.

Вы можете перечислить все установленные пакеты с помощью

dpkg -l

Вы можете увидеть детали для определенного пакета с

dpkg -p packagename

И чтобы узнать, установлен ли он, используйте

dpkg -s packagename | grep Status

Вы можете узнать, какой пакет содержит нужное программное обеспечение.

apt-cache search name*  

В вашем случае вы должны использовать эту команду для поиска нужного имени пакета

apt-cache search virtual machine host 

24
2018-02-20 09:10





apt -qq list PACKAGE также может использоваться для проверки того, установлен ли ПАКЕТ.

Если он установлен, он напечатает что-то вроде (с [installed] в конце строки):

$ apt -qq list awscli
awscli/stable,now 1.4.2-1 all [installed]

Если не установлено, выход будет:

$ apt -qq list awscli
awscli/stable 1.4.2-1 all

20
2017-09-11 13:54



Вы можете поместить звезду в конец имени пакета для шаблона. - Brannon
Вы также можете использовать опцию --installed для этой команды, чтобы ограничить совпадения, которые фактически установлены. - mtalexan
Что такое -qq для? Кажется, что он работает одинаково без него, и этот вариант отсутствует в руководстве man apt - Gabriel Staples
@GabrielStaples Похоже, что apt list команда еще не полностью задокументирована. Некоторое быстрое тестирование 16.04, похоже, указывает на то, что -q является синонимом --quiet вариант. Первый -q предотвращает печать слова «Готово». Второй также предотвращает печать «Листинг ...». - Anthony Geoghegan


Я нашел способ проверить установку пакета только с командой dpkg-query и без труб.

Я искал такое решение при написании задачи для незанятой пьесы.

Итак, вы можете сделать что-то вроде этого:

/usr/bin/dpkg-query --show --showformat='${db:Status-Status}\n' '<your package name>'

Это всего лишь один из способов сделать это.


12
2017-09-01 19:47



трубы в недоступном состоянии могут использоваться с shell модуль. - sjas


Я пишу новый ответ: Tasksel «Названия задач» НЕ отображаются в dpkg или apt запросы. Значение других ответов является неполным (или неправильным).

«Я не помню, если я проверил флажок« хост виртуальной машины ».»

Проверьте, есть ли звездочка по имени после повторного запуска sudo tasksel,
(или " я 'при запуске tasksel --list-tasks).

Если вы этого не видите, то вы вероятно не имеют 'tasksel мета-пакет' установлен.


«... Как проверить, имеет ли мой сервер соответствующие пакеты?»

Если вы хотите узнать, что установлено в мета-пакете tasks Hostel Virtual Machine Host:

tasksel --list-tasks

(в твоем случае tasksel --list-tasks | grep virt достаточно)

Это дает правильную задачу имя и указание о том, установлено ли оно.

В вашем случае это имя taskel virt-host,


«Какие пакеты поставляются с хостом виртуальной машины?»

Из последней команды найдите имя задачи taskel.
Это необходимо для следующей команды:

tasksel --task-packages virt-host

В этом списке указан мета-пакет Tasksel (обозначается добавленным «^»), который составляет имя.
В вашем случае это virt-host^,

Когда вы найдете правильное мета-имя, вы можете использовать apt:

 apt show virt-host^ | grep "Package:"

(или apt-cache show  ... если apt show не работает.)

Это покажет все пакеты, составляющие данный мета-пакет.

Затем:

 dpkg -l {each individual pkg name listed above}

Это скажет вам, установлен ли / удален отдельный пакет (отмечен 2-й буквой: установлен статус «i»). Сделайте это для всех пакетов, перечисленных в пакете задач / мета.

Это должно отвечать на исходные вопросы.

Боковое примечание: /usr/share/tasksel/descs/ubuntu-tasks.desc также содержит описания метаданных Tasksel. Если ты: grep "virt" /usr/share/tasksel/descs/ubuntu-tasks.desc он покажет правильное имя мета-пакета APT. (В вашем случае это ubuntu-virt-server). Вы также можете использовать apt команды с этим мета-именем.

Если вы хотите удалить пакеты tasksel, это немного усложняется. Проконсультируйтесь https://askubuntu.com/a/88897/169878 или любое количество других ответов.

Обратите внимание, что пакеты meta apt не соответствуют именам пакетов Tasksel. Проконсультируйтесь Страница сообщества Tasksel для получения дополнительной информации.


4
2017-10-19 15:17



На оба вопроса отвечает правильно. Если вы занижали, объясните причину или скажите мне, почему это не так. - bshea


Используйте tasksel (sudo apt-get install tasksel если у вас его еще нет) и запустить tasksel --list-tasks,

tasksel будет распечатывать список задач, и будет i рядом с каждой установленной задачей, и u рядом с каждой задачей, которая не установлена.

Если вы хотите установить задачу, используйте tasksel install <task>, Название задачи, которую вы ищете, virt-host,

Элементы выбора программного обеспечения называются «задачами».


2
2018-02-19 21:31



спасибо, что рассказала мне название задачи, это была одна из моих проблем, не был уверен, какой пакет искать. - D.Zou