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

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

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

Enter image description here

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

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

177
задан 15 February 2017 в 22:05

10 ответов

Хотите узнать обо всех командах dpkg с опциями? Прочитайте ссылку ниже.

15 команд dpkg для управления Linux-серверами на основе Debian

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

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

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
0
ответ дан 15 February 2017 в 22:05
  • 1
    Какой I' m высказывание это I' ve имел тонны проблем в прошлом с раскладками клавиатуры во множестве Ose и стандартизировал на американских Аппаратных средствах QWERTY для всех машин и haven' t имел любые проблемы с тех пор. Используя US - International в SW даже позволяет мне писать все западноевропейские языки, который является всем, в чем я нуждаюсь. – Fabby 24 November 2015 в 01:41

Используйте dpkg

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

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

dpkg -l

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

dpkg -p packagename

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

.
dpkg -s packagename | grep Status

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

apt-cache search name*  

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

apt-cache search virtual machine host 
0
ответ дан 15 February 2017 в 22:05
  • 1
    это doesn' t показывают мою специальную карту, она только показывает моему интегрированному VGA карту Intel, есть ли существует какой-либо метод, чтобы заставить ОС обнаружить ее??? – khaled 9 August 2015 в 16:49

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
0
ответ дан 15 February 2017 в 22:05

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

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

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

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

Это просто еще один способ сделать это.

0
ответ дан 15 February 2017 в 22:05
  • 1
    Хорошо собираясь давать все, что попытка в немного. Спасибо =D – swiftdeveloper 9 August 2015 в 01:17

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

"Я не могу помнить, Проверил ли я 'флажок' хоста виртуальной машины.."

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

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


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

Если Вы хотите узнать то, что установлено под Хостом Виртуальной машины tasksel метапакет:

tasksel --list-tasks

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

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

В Вашем случае это имя tasksel virt-host.


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

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

tasksel --task-packages virt-host

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

После того как Вы находите надлежащее метаимя, можно использовать склонный:

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

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

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

Затем:

 dpkg -l {each individual pkg name listed above}

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

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

Примечание стороны:/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" способные пакеты не соответствуют именам пакета Tasksel. Консультируйтесь с Общественной Страницей Tasksel для большего количества информации.

5
ответ дан 15 February 2017 в 22:05

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

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

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

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

0
ответ дан 15 February 2017 в 22:05

Более простое решение:

Теперь есть команда apt list, которая выводит список установленных пакетов. Вы также можете выполнить поиск определенного пакета с помощью

apt list <package>

См. man apt для получения дополнительной информации. Если вы не знаете точного имени пакета, вы можете использовать apt search, а затем его часть, чтобы увидеть список связанных пакетов.

0
ответ дан 15 February 2017 в 22:05

Если кому-то это интересно, я создал небольшой скрипт, с помощью которого вы можете автоматически установить его из списка пакетов или приложений или просто проверить, установлены ли они уже:

#!/bin/bash
apt -qq list YOUR_LIST_GOES_HERE | grep -v "installed" | awk -F/ '{print $1}' > /root/list.txt
packages=$(cat /root/list.txt)
grep -q '[^[:space:]]' < /root/list.txt
CHECK_LIST=$?
if [[ $CHECK_LIST -eq 1 ]]; then
echo "Your packages are already installed"
else
echo "Installing packages"
apt-get  install -y $packages
fi

Надеюсь, он кому-нибудь поможет.

0
ответ дан 15 February 2017 в 22:05

Другой (не обязательно лучший) способ: посмотреть, отображается ли поле APT-Manual-Installed в apt show . Если его нет, значит, пакет не установлен. К сожалению, это не показано в apt-cache show .

Как всегда, apt предназначен для интерактивного использования и не рекомендуется для написания сценариев.

1
ответ дан 25 November 2019 в 22:10

Проверьте, установлены ли некоторые пакеты, в противном случае установите недостающие.

pkgs='qemu-user pandoc'
if ! dpkg -s $pkgs >/dev/null 2>&1; then
  sudo apt-get install $pkgs
fi

Дополнительная информация: https://stackoverflow.com/questions/1298066/check-if-an-apt -get-package-is-installed-and-then-install-it-if-its-not-on-linu / 54239534 # 54239534

Подобный метод ранее упоминался по адресу: https://askubuntu.com/ a / 1102572/52975

3
ответ дан 1 January 2020 в 09:51

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

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