以前はSynapticを使用してローカルパッケージを探していました。ローカルにインストールされているが、現在アクティブなリポジトリと完全に一致しないパッケージ。この投稿で説明されているように、 「ローカルまたは廃止された」とはSynapticで何を意味するか 。
デバッグに関しては、この機能が非常に役立ちます 満たされていない依存関係 問題。私は 廃止されたパッケージのリスト を取得する方法を知っていますが、ローカルパッケージの方法を見つけることができませんでした。
それで、すべてのローカルパッケージを一覧表示する同等のコマンドラインはありますか?
注は、私が使用したイディオムを説明しています。
つまり、すべてのインストール済みパッケージを意味するわけではありません。
テストケース
debhelper
を検索して選択します。メニュー:パッケージ→バージョンの強制...:バックポートからバージョンを選択してインストールします(通常は最も高いバージョン)これら2つのリストを比較します。
Synaptic→SideBar:Status→Installed(local&obsolete)
aptitude search '~o'
user@user-vb:~$ aptitude search '~o'
i A linux-headers-4.15.0-19 - Header files related to Linux kernel version 4.15.0
i A linux-headers-4.15.0-19-generic - Linux kernel headers for version 4.15.0 on 64 bit x86 SMP
i A linux-image-4.15.0-19-generic - Signed kernel image generic
i A linux-modules-4.15.0-19-generic - Linux kernel extra modules for version 4.15.0 on 64 bit x86
i A linux-modules-extra-4.15.0-19-generic - Linux kernel extra modules for version 4.15.0 on 64 bit x86
user@user-vb:~$
Source.listに由来しない、またはダウンロードできないインストール済みパッケージを検索します。
$ aptitude search \
'?narrow(?or(!?origin(), ?obsolete), ?installed)'
または短い形式:
$ aptitude search '~S (!~O|~o) ~i'
?narrow
(フィルター、パターン)?or
(パターン、パターン)?origin
(パターン)?obsolete
?installed
?not
(パターン)または!
apt list --installed
は、パッケージをlocal
としてラベル付けします。これは、ユーザーの定義と一致しているように見えます(ここで 私の答え を参照)。あなたはask、grepなどでラベル付けされたパッケージのみをフィルタリングできます:
apt list --installed | awk -F/ '/local]/{print $1}'
Python APT API を使用して同様のチェックを行うこともできます。
apt-show-versions | grep -e 'No available version' -e 'newer than version'
を使用すると、パッケージのリストを取得できます。
おそらく、事前にSudo apt install apt-show-versions
でインストールする必要があります。