Obtenha a lista de pacotes que não estão instalados em um sistema Debian

1

Estou escrevendo um script para imprimir a lista de pacotes que não estão instalados.

#!/bin/bash

declare -a LIST_OF_PACKAGES=("php5" "nginx")

for i in "${LIST_OF_PACKAGES[@]}"
do
        PACKAGE_STATUS='dpkg-query -W -f='${Status} ${Version}\n' $i | grep --line-buffered -v "install ok"'
        ECHO='echo $i * $PACKAGE_STATUS * $i'
done

Estou tentando incluir estas linhas abaixo em loop:

echo $ECHO | awk -F "*" '{print $1}' | sed '/^\s*$/d'

Basicamente, eu estou tentando grep os pacotes que não estão instalados. então estou cortando a lista com base em "*".

Saída atual:

unknown ok not-installed

Saída exigida:

nginx * unknown ok not-installed

Eu quero ignorar os pacotes que estão instalados.

    
por Kasino 13.08.2015 / 16:19

1 resposta

2

Você pode listar os pacotes não instalados diretamente com o aptitude:

aptitude search "!(~i)"

Você também pode usar o formulário mais explícito, mas equivalente:

aptitude search "?not(?installed)"

Se quiser imprimir apenas os nomes dos pacotes, você pode adicionar uma opção de formatação:

 aptitude -F "%p" search "?not(?installed)"

Leia a Referência de termos de pesquisa do aptitude , é útil.

    
por 12.01.2016 / 13:48