適性で各状態のパッケージを探す

適性で各状態のパッケージを探す

次のような状況のパッケージを探しています。

  1. 削除されたが消去されない
  2. インストールされているが構成されていない

私は次のことを試しました

aptitude search '~id'

そして

aptitude search "~iuA"

しかし、それらのどれも動作しません。

どんなアイデアがありますか?

更新 - コマンドのいずれかが機能しない -

[$] dpkg-query -Wf '${db:Status-Abbrev} ${Package}\n' | grep ^i[^i]

zsh: no matches found: ^i[^i]

それがzshのバグか他のものなのか、どんなアイデアがありますか?

ベストアンサー1

試みにaptitude注目すべき点は、これが~「パッケージの状態で次のフラグを見つける」という意味ではないということです。~iyesの略語は~installed次のとおりです。D文字通り解釈されるDつまり、名前に文字を含むパッケージD。あなたの問題を満たすことができる検索パターンを見つけるためにaptitude私のシステムのドキュメントを見ましたが、/usr/share/doc/aptitude/html/en/index.htmlこれが可能かどうかはわかりません。~action途中で到着するかもしれませんが、それがあなたに地位をもたらすのかどうかはわかりません。


使用の代替案はと一緒にaptitude使用することです。dpkg-querygrep

dpkg-query -Wf '${db:Status-Abbrev} ${Package}\n' | grep ^r

これで場所が検索されます。削除済み状態ですが削除されませんでした。

dpkg-query -Wf '${db:Status-Abbrev} ${Package}\n' | grep ^i[^i]

タグ付きパッケージを検索します。インストール済み、まだ完全にインストールされていません。トリガーに保留中のパッケージを含めたくない場合に使用できます^i[ncHUF]


出力の2番目の列(パッケージ名)のみを取得するには、次のものを使用できますsed

dpkg-query -Wf '${db:Status-Abbrev} ${Package}\n' | sed -n 's/^r.R\?\s*//p'

削除されたパッケージの検索と

dpkg-query -Wf '${db:Status-Abbrev} ${Package}\n' | sed -n 's/^i[^i]R\?\s*//p'

インストールしたいが完全にインストールされていないパッケージを見つけます。


これを拡張すると、Debianパッケージの「状態」は2つの部分で構成されます。

  • これ行動パッケージで実行するように設計されています。これができるインストールするパッケージが届きました削除するパッケージが届きました捕まえるパッケージまたは明らか小包。

  • これパッケージの状態、システム内のパッケージの実際の状態を説明します。

上記の呼び出しは、dpkg-query各行の先頭にパッケージ名とともに、パッケージのアクションとステータスを文字ごとに1文字ずつリストします。

削除されたが削除されていないパッケージを見つけるには、「remove」アクションを使用してパッケージを検索しますgrep ^r。インストール済みまたはインストールされる予定であるがまだ構成されていないパッケージを見つけるには、そのパッケージを検索します。行動はいインストールするしかし、状態はそうではありません。インストール済みgrep ^i[^i]

おすすめ記事