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

106

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

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

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

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

    
задан D.Zou 19.02.2014 в 21:12
источник

6 ответов

145

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

Здесь «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
    
ответ дан Lonston 20.02.2014 в 09:12
источник
19

Использовать dpkg

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

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

dpkg -l

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

dpkg -p packagename

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

dpkg -s packagename | grep Status

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

apt-cache search name*  

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

apt-cache search virtual machine host 
    
ответ дан onurbekiroglu 20.02.2014 в 09:10
13

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
    
ответ дан Viktor Benei 11.09.2016 в 13:54
10

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

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

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

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

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

    
ответ дан DenKoren 01.09.2015 в 19:47
2

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

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

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

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

    
ответ дан Blake R 19.02.2014 в 21:31
1

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

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

1-й проверить, есть ли звездочка по имени после повторного запуска sudo tasksel (или « i », если выполняется tasksel --list-tasks ). Если вы этого не видите, у вас, вероятно, не будет установлен мета-пакет tasksel.

С учетом сказанного, если вы все еще хотите узнать, что установлено в мета-пакете задач Host Machine Virtual Machine:

tasksel --list-tasks

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

Это дает правильную задачу name и указание, установлена ​​ли она. В вашем случае это имя задачи является «virt-host».

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

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

tasksel --task-packages virt-host

В этом списке перечислены отдельные пакеты, составляющие заданный пакет задач tasksel. Это должно указывать мета-пакет (обозначается добавлением «^» в конце имени). Когда вы найдете правильное имя мета, вы можете использовать apt:

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

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

(Показать все pkgs, составляющие данный мета-пакет.)

Тогда:

 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, это немного усложняется. Проконсультируйтесь с ссылкой или любым другим количеством ответов.

Страница сообщества Tasksel также может быть полезна. Обратите внимание, что мета-пакеты не соответствуют именам пакетов задач.

    
ответ дан bshea 19.10.2016 в 15:17