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

Вы не можете напрямую редактировать текст в файле изображения. Вы можете отредактировать файл изображения с помощью программы, такой как gimp, и поместить новый текст поверх старого, но это все. К сожалению.

1
задан 15 February 2017 в 23:05

5 ответов

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

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

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

dpkg -l

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

dpkg -p packagename

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

dpkg -s packagename | grep Status

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

apt-cache search name*  

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

apt-cache search virtual machine host 
21
ответ дан 24 May 2018 в 11:35

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
15
ответ дан 24 May 2018 в 11:35
  • 1
    Вы можете поместить звезду в конец имени пакета для шаблона. – Brannon 22 October 2016 в 06:09
  • 2
    Вы также можете использовать опцию --installed для этой команды, чтобы ограничить совпадения, которые фактически установлены. – mtalexan 11 October 2017 в 22:17
  • 3
    Для чего нужен -qq? Кажется, что он работает одинаково без него, и этот вариант отсутствует в руководстве man apt – Gabriel Staples 8 March 2018 в 04:09
  • 4
    @GabrielStaples Похоже, что команда apt list еще не полностью задокументирована. Некоторое быстрое тестирование 16.04, похоже, указывает на то, что -q является синонимом опции --quiet. Первый -q предотвращает слово «Готово», печатается. Второй также предотвращает «Листинг ...». от печати. – Anthony Geoghegan 3 April 2018 в 14:39

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

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

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

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

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

11
ответ дан 24 May 2018 в 11:35
  • 1
    трубы в недоступном случае могут использоваться с модулем shell. – sjas 27 August 2017 в 12:51

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

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

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

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

2
ответ дан 24 May 2018 в 11:35
  • 1
    спасибо, что рассказала мне название задачи, это была одна из моих проблем, не был уверен, какой пакет искать. – D.Zou 21 February 2014 в 04:11

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

«Не могу вспомнить, если я проверил флажок« хост виртуальной машины ». Как проверить, имеет ли мой сервер соответствующие пакеты?» [ ! d1]

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

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

tasksel --list-tasks

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

Это дает правильную задачу " Я не могу вспомнить, если я проверил флажок «хост виртуальной машины». Как проверить, имеет ли мой сервер соответствующие пакеты? » и указание, установлен ли он. В вашем случае это имя задачи является «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» означает установлен). Сделайте это для всех пакетов, перечисленных в пакете task / meta.

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 или любым количеством других ответов.

https://askubuntu.com/a/88897/169878 [!d25 ] также могут быть полезны. Обратите внимание, что мета-пакеты не соответствуют именам пакетов задач.

1
ответ дан 24 May 2018 в 11:35
  • 1
    На оба вопроса отвечает правильно. Если вы занижали, объясните причину или скажите мне, почему это не так. – bshea 23 October 2016 в 17:54

Другие вопросы по тегам:

Похожие вопросы: