Synaptic/apt/dpkgを使用してダウンロードされた(インストールされていない)パッケージを検出しますか?

Synaptic/apt/dpkgを使用してダウンロードされた(インストールされていない)パッケージを検出しますか?

検出する方法はありますか?ダウンロード(キャッシュから)そしてインストールされていませんSynaptic、apt、またはdpkgのパッケージを使用していますか?これには特定のフィルタを作成する必要がありますか?では、どうすればよいですか?これについてどこで学べますか?

aptまたはSynapticキャッシュがオンになっていることがわかり、/var/cache/apt/archivesaptを使用して何かをインストールするとキャッシュに何も入らないようです。一方、Synapticでは、後でダウンロードしてインストールすることを選択できます。

私が望むのは、まだインストールされていないキャッシュに何があるのか​​を知ることです。

答え1

速くて汚い:

PATH=/sbin:$PATH dpkg --no-act -iGE /var/cache/apt/archives/*.deb 2>&1 |grep -v skipping

これを行うには、dpkgがすでに同じバージョンまたは最新バージョンのパッケージ()をスキップしてキャッシュからパッケージをインストール--no-act()するふりをする必要があります。ルートである必要はありませんが、コマンド検索パスにいくつかのユーティリティが必要です。これは、モードで使用していなくても、パスにいくつかのユーティリティが必要であると主張するためです。-i-GE/sbindpkg -i/sbin--no-act

答え2

Synapticではこれを行うことはできないようですが、以下はキャッシュ内のすべてのパッケージの状態を照会し、インストールされているパッケージと一致しないファイルを一覧表示するコマンドです。

for deb in /var/cache/apt/archives/*.deb; do
    package=$(dpkg-deb -f $deb Package)
    if [ "$(dpkg-query -f '${Status}' -W $package 2>/dev/null)" != "install ok installed" ]; then
        echo $deb
    fi
done

これは*.deb、キャッシュ内の各ファイルを調べて、含まれるパッケージを決定し、パッケージの状態を確認します。完全にインストールおよび構成されていないパッケージに対応するすべてのファイルがリストされます。

問い合わせ方法同様の効果がありますが、動作します。みんなaptキャッシュに多数のパッケージが含まれている場合、最終速度はより速くなります。アップグレード候補を一覧表示できるという利点もありますが、特定のdpkgフックを実行するという欠点もあります(オプションがあるにもかかわらず--no-act)。

apt(v。またはSynaptic)実行後にapg-getキャッシュにパッケージが表示されないのは、パッケージがapt自動的にクリーンアップされるためです。

関連情報