Скрипт для установки отсутствующих пакетов через dpkg-query

У меня есть сценарий, который позволяет отбросить пакеты, отсутствующие в командной строке, но хотел бы добавить элемент управления для установки отсутствующих приложений. Каким будет лучший способ сделать это? apt-get install $ tmp?

#!/bin/bash

echo "Checking server for missing packages..."
tmp=$(dpkg-query -W -f='${Package} ${Status} \n' apache2 openssh-server php5 \
php5-cli php5-xsl php5-imap php5-curl | grep "no package found")

if [[ $tmp =~ "no package found" ]]
then
echo "working"
apt-get install $tmp
else
echo "foo"
fi

Я попытался добавить в него цикл, но не получая вывод из $ tmp

благодаря

1
Может быть. Вам может понадобиться sudo для apt-get install.
добавлено автор fedorqui, источник

1 ответы

apt-get не будет жаловаться, если вы назвали пакеты, уже установленные в вашей системе. Учитывая этот факт, я бы не стал пытаться отфильтровать уже установленные пакеты и просто использовать следующий однострочный.

apt-get install apache2 openssh-server php5 php5-cli php5-xsl php5-imap php5-curl

Возможно, вы захотите добавить -qy-переключатели для запуска тихо и без каких-либо вопросов.

1
добавлено
RU.UBUNTU — сообщество пользователей Ubuntu
RU.UBUNTU — сообщество пользователей Ubuntu
1 681 участник(ов)

Сообщество пользователей Ubuntu Правила: https://telegra.ph/Pravila-soobshchestva-polzovatelej-ru-ubuntu-01-05 Список интересных групп и каналов: https://github.com/goq/telegram-list

pro.bash
pro.bash
123 участник(ов)

All about Nix shells, signals, processes and development in general.