Para as suas aptitude
tentativas, é importante observar que ~
não significa "procure os seguintes sinalizadores no status de um pacote". ~i
é a abreviação de ~installed
e, em seguida, o d é interpretado como um literal d , ou seja, pacotes cujos nomes contêm a letra d . Analisei a documentação de aptitude
( /usr/share/doc/aptitude/html/en/index.html
no meu sistema) para um padrão de pesquisa que satisfaria sua pergunta, mas não tenho certeza se é possível. ~action
pode chegar até lá no meio do caminho, mas também não tenho certeza se estou conseguindo o status.
Uma alternativa ao uso de aptitude
é usar dpkg-query
com grep
.
dpkg-query -Wf '${db:Status-Abbrev} ${Package}\n' | grep ^r
Isso irá procurar pacotes que estão no estado removido , mas não eliminados.
dpkg-query -Wf '${db:Status-Abbrev} ${Package}\n' | grep ^i[^i]
Isto irá procurar pacotes marcados como instalados , mas não estão completamente instalados. Se você não quiser incluir pacotes pendentes em gatilhos, use ^i[ncHUF]
.
Para obter apenas a segunda coluna de saída (o nome do pacote), você pode usar sed
:
dpkg-query -Wf '${db:Status-Abbrev} ${Package}\n' | sed -n 's/^r.R\?\s*//p'
para encontrar pacotes removidos e
dpkg-query -Wf '${db:Status-Abbrev} ${Package}\n' | sed -n 's/^i[^i]R\?\s*//p'
para encontrar pacotes a serem instalados, mas não completamente instalados.
Para expandir isso um pouco, os pacotes Debian têm duas partes para o seu 'status':
-
A ação destina-se a ser executada em um pacote. Isto pode ser para instalar um pacote, para remover um pacote, para reter um pacote, ou para eliminar um pacote pacakge.
-
O status do pacote , que descreve o estado atual do pacote no seu sistema.
A chamada dpkg-query
acima lista a ação e o status de um pacote, um caractere cada, procedendo ao nome do pacote no início de cada linha.
Para encontrar pacotes que são removidos, mas não eliminados, apenas procuramos por pacotes com a ação 'remover': grep ^r
. Para encontrar pacotes instalados ou destinados a serem instalados, mas ainda não configurados, procuramos por pacotes cuja ação é install , mas cujo status é diferente de > instalado : grep ^i[^i]
.