Debianシステムから削除されたパッケージのリストを取得する

Debianシステムから削除されたパッケージのリストを取得する

削除されたパッケージのリストを印刷するスクリプトを作成しています。

#!/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

forループに次の行を含めようとしています。

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

デフォルトでは、インストールされていないパッケージをgrepしようとしています。だから、「*」に基づいてリストを切り取ります。

現在の出力:

unknown ok not-installed

希望の出力:

nginx * unknown ok not-installed

インストールされたパッケージを無視したいです。

答え1

aptitudeを直接使用して、削除されたパッケージを一覧表示できます。

aptitude search "!(~i)"

より明確ですが、同等の形式を使用することもできます。

aptitude search "?not(?installed)"

パッケージ名のみを印刷するには、フォーマットオプションを追加するだけです。

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

読む適性でのクエリメモ、とても便利です。

関連情報