検出する方法はありますか?ダウンロード(キャッシュから)そしてインストールされていませんSynaptic、apt、またはdpkgのパッケージを使用していますか?これには特定のフィルタを作成する必要がありますか?では、どうすればよいですか?これについてどこで学べますか?
aptまたはSynapticキャッシュがオンになっていることがわかり、/var/cache/apt/archives
aptを使用して何かをインストールするとキャッシュに何も入らないようです。一方、Synapticでは、後でダウンロードしてインストールすることを選択できます。
私が望むのは、まだインストールされていないキャッシュに何があるのかを知ることです。
答え1
速くて汚い:
PATH=/sbin:$PATH dpkg --no-act -iGE /var/cache/apt/archives/*.deb 2>&1 |grep -v skipping
これを行うには、dpkgがすでに同じバージョンまたは最新バージョンのパッケージ()をスキップしてキャッシュからパッケージをインストール--no-act
()するふりをする必要があります。ルートである必要はありませんが、コマンド検索パスにいくつかのユーティリティが必要です。これは、モードで使用していなくても、パスにいくつかのユーティリティが必要であると主張するためです。-i
-GE
/sbin
dpkg -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
自動的にクリーンアップされるためです。