Eu tenho um requisito simples. Eu quero definir várias variáveis que corresponderão a qualquer número de pacotes que eu quero instalar via um script de shell.
Código de exemplo abaixo:
MISC="shutter pidgin"
WEB="apache2 mongodb"
for pkg in $MISC $WEB; do
if [ "dpkg-query -W $pkg | awk {'print $1'} = """ ]; then
echo -e "$pkg is already installed"
else
apt-get -qq install $pkg
echo "Successfully installed $pkg"
fi
done
Tudo meio que funciona, mas a lógica parece falha porque não é a instalação confiável dos pacotes que eu quero. Ele diz que já foi instalado ou está tentando instalar pacotes que já foram instalados anteriormente.
Eu também tenho tentado com command -v
ou o seguinte:
if [ "dpkg -l | awk {'print $2'} | grep --regexp=^$pkg$ != """ ]; then
E mesmo com os sinalizadores -n
e -z
para verificar se a sequência retornada estava vazia. Tenho certeza de que estou perdendo algum bom senso aqui.
Você tem alguma idéia do que eu poderia fazer para garantir que um pacote esteja realmente instalado ou não?
Obrigado!
apt-get install
pacotes instalados também? Você poderia simplesmente ligarapt-get install $MISC $WEB
.