Я недавно установил Ubuntu Server Edition 13.10 (Saucy Salamander). Но я столкнулся с небольшой проблемой.
В конце установки он запрашивает у вас несколько дополнительных пакетов, хотите ли вы их или нет, например, сервер OpenSSH и хост виртуальной машины. Вот что я смотрю:
Теперь моя проблема в том, что я не могу вспомнить, если я установил флажок «хост виртуальной машины». Как проверить, есть ли на моем сервере соответствующие пакеты?
Какие пакеты поставляются с хостом виртуальной машины?
Хотите узнать обо всех командах 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
Используйте dpkg
Эта команда является менеджером пакетов debian.
Вы можете перечислить все установленные пакеты с помощью
dpkg -l
. Вы можете просмотреть детали для определенного пакета с помощью
dpkg -p packagename
. Чтобы узнать, установлен ли он, используйте
.dpkg -s packagename | grep Status
Вы можете узнать, какой пакет содержит требуемое программное обеспечение, с помощью
apt-cache search name*
. В вашем случае вам следует использовать эту команду для поиска нужного имени пакета
apt-cache search virtual machine host
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
Я нашел способ проверить установку пакета с помощью команды dpkg-query и без каналов.
Я искал такое решение, когда писал задачу для сборника пьес.
Итак, вы можете сделать что-то вроде этого:
/usr/bin/dpkg-query --show --showformat='${db:Status-Status}\n' '<your package name>'
Это просто еще один способ сделать это.
Я пишу новый ответ, поскольку 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 для большего количества информации.
Используйте tasksel (sudo apt-get install tasksel
, если у вас его еще нет) и запустите tasksel --list-tasks
.
tasksel распечатает список задач, и рядом с каждой установленной задачей будет i
, а рядом с каждой не установленной задачей - u
.
Если вы хотите установить задачу, используйте tasksel install <task>
. Название задачи, которую вы ищете, - virt-host
.
Пункты выбора программного обеспечения называются «задачами».
Более простое решение:
Теперь есть команда apt list
, которая выводит список установленных пакетов. Вы также можете выполнить поиск определенного пакета с помощью
apt list <package>
См. man apt
для получения дополнительной информации. Если вы не знаете точного имени пакета, вы можете использовать apt search
, а затем его часть, чтобы увидеть список связанных пакетов.
Если кому-то это интересно, я создал небольшой скрипт, с помощью которого вы можете автоматически установить его из списка пакетов или приложений или просто проверить, установлены ли они уже:
#!/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
Надеюсь, он кому-нибудь поможет.
Другой (не обязательно лучший) способ: посмотреть, отображается ли поле APT-Manual-Installed
в apt show
. Если его нет, значит, пакет не установлен. К сожалению, это не показано в apt-cache show
.
Как всегда, apt
предназначен для интерактивного использования и не рекомендуется для написания сценариев.
Проверьте, установлены ли некоторые пакеты, в противном случае установите недостающие.
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
US - International
в SW даже позволяет мне писать все западноевропейские языки, который является всем, в чем я нуждаюсь. – Fabby 24 November 2015 в 01:41